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ケース用意すればおkC:テレビの視聴パターンが○×で表示され、連続で視聴するための台数を返す。
よく分からなくて適当に書いたらダメだった。
#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 件のコメント:
コメントを投稿