問題はこちら
No.706 多眼生物の調査 - yukicoder
strlen(s)-2の最頻値を見るだけ
int a[1010]; int main(){ int n; scanf("%d\n",&n); for(int i=0;i<n;i++){ char s[1010]; gets(s); a[strlen(s)-2]++; } int ans=2; for(int i=2;i<=1000;i++)if(a[i]>=a[ans])ans=i; printf("%d",ans); }
ぐっと睨んでループをまとめる。文字列を読み込む変数をごまかしたり、端の処理をごまかしても通る
k,a[999],i; main(m){ for(;gets(&k)?++a[strlen(&k)]:i++<998?m=a[i]<a[m]?m:i:0;); printf("%d",m-2); }
95B
これは996までしかチェックしていないので997や998が答えになるときWAになる