A:入力文字列から壊れたキーを消せばおk。
#include<iostream> using namespace std; int main(void){ char x; char str[60],ans[60]; cin >> x; cin >> str; int j = 0; for(int i = 0; i < 50; i++){ if(str[i] == '\0'){ ans[j] = str[i]; j++; break; } if(str[i] != x){ ans[j] = str[i]; j++; } } if(j == 0){ cout << endl; }else{ cout << ans << endl; } return 0; }
ホントに実装下手か
string使いたかったけどなんかバグが取れなくて普通にchar型の配列使ってしまった。
これは終端文字のところがちょっとおかしくて2回ほどWA食らってしまった。
B:高橋君がCDをバラバラにしまったのでどのケースにどのCDがあるのかを列挙する
#include<iostream> using namespace std; int main(void){ int n,m; int p,c[100],temp,d; cin >> n >> m; for(int i = 0; i < n; i++){ c[i] = i + 1; } p = 0; for(int i = 0; i < m; i++){ cin >> d; if(p == d) continue; for(int j = 0; j < n; j++){ if(c[j] == d){ temp = c[j]; c[j] = p; p = temp; } } } for(int i = 0; i < n; i++){ cout << c[i] << endl; } return 0; }仮想的にプレイヤーとCDケース用意すればおk
C:テレビの視聴パターンが○×で表示され、連続で視聴するための台数を返す。
よく分からなくて適当に書いたらダメだった。
#include<iostream> #include<cstring> using namespace std; int main(void){ char str[25],cac[15],chc[15]; bool f = true; int ans = 0; cin >> str; int length = strlen(str); strcpy(cac,str); strcat(str,cac); for(int i = 0; i < length; i++){ chc[i] = 'o'; } strcat(chc,"\0"); do{ char buf[25]; strcpy(buf,str); int chg = 0; for(int i = 0; i < length; i++){ char buf2[25]; strcpy(buf2,buf); int ibuf = 0; for(int j = i; j < length + i; j++){ if(cac[j] == 'o' && buf2[j] == 'x'){ buf2[j] = 'o'; ibuf++; } } if(chg < ibuf){ chg = ibuf; strcpy(str,buf2); } } if(strstr(str,chc) != NULL){ f = false; } ans++; }while(f); cout << ans << endl; return 0; }自分でも何やってるかわからない。
というわけで初参加のarcは156位でした。次回は2ケタ目指す。
0 件のコメント:
コメントを投稿