※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「2361~2370」の編集履歴(バックアップ)一覧に戻る

2361~2370 - (2012/03/16 (金) 12:14:41) のソース

*2361 Chicken or the Egg
問題のルールを理解するのに少し時間のかかる問題。
卵鶏卵鶏鶏卵 と並んでいる場合並んでいる鶏で区切って
(卵鶏卵鶏)と(鶏卵)で分割し、分割した内容を後ろから読んでより後ろがご先祖様になる。
この後ろから読むという部分を読解できるかどうかがこの問題最大の難関。
問題を解くコード自体は極めて簡素にできる。





 #include<stdio.h>
 int main(){
	char c,str[7],ans,old=' ';
	int count=0,ansCount;
	
	while(scanf("%c",&c)!=EOF && c!='\n'){
		if(c=='e'){
			scanf("%2s",str);
		}else if(c=='c'){
			scanf("%6s",str);
		}
		if(c==old){
			if(ansCount<count){
				ans=c;
				ansCount=count;
			}
			count=0;
		}else if(old==' '){
			ans=c;
			ansCount=1;
			count=0;
		}
		count++;
		old=c;
	}
	if(ansCount<count)ans=old;
	printf("%s\n",ans=='e'?"egg":"chicken");
 }