メモ

yukicoderでゆるふわgolf

yukicoder No.547 未知の言語

問題はこちら
No.547 未知の言語 - yukicoder

scanfを使うと空白区切りで読み込めるのでstrcmpで比較するだけ

char s[11][22];
char t[11][22];
main(){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)scanf("%s",s[i]);
	for(int i=0;i<n;i++)scanf("%s",t[i]);
	for(int i=0;i<n;i++)if(strcmp(s[i],t[i]))printf("%d\n%s\n%s",i+1,s[i],t[i]);
}


まとめて1つの配列に読み込めばループも1つにできる
配列はchar型でなくても構わない
Nの読み込みなどに注意してざっくりまとめるとこうなる

s[25][6],n,i;
main(){
	for(;~scanf("%s",s[n]);n++);//nのincを中に入れるとn/2が1大きくなってしまう
	for(;!strcmp(s[i],s[++i+n/2]););
	printf("%d\n%s\n%s",i,s[i],s[i+n/2]);
}

for文を1つにまとめる

s[25][6],n,i;
main(){
	for(;~scanf("%s",s[n])?++n:!strcmp(s[i],s[++i+n/2]););
	printf("%d\n%s\n%s",i,s[i],s[i+n/2]);
}

112B