Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Look for the Winner!"
https://onlinejudge.u-aizu.ac.jp/problems/1609
・当選者を探せ!
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume16 - 1609 : Look for the Winner!
/* Aizu Online Judge in C++ #Volume16 - 1609 : Look for the Winner! https://onlinejudge.u-aizu.ac.jp/problems/1609 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n; while(cin>>n,n){ char c[110]; for(ll i=0;i<n;i++){ cin>>c[i]; } ll cnt[110]={},m1=0,m2=0; char mc='-'; bool tf=false; for(ll i=0;i<n;i++){ cnt[c[i]]++; if(m1<cnt[c[i]]){ if(mc!=c[i]){ m2=m1; } m1=cnt[c[i]]; mc=c[i]; }else if(m2<cnt[c[i]]){ m2=cnt[c[i]]; } if(m1>m2+n-i-1){ cout<<mc<<" "<<i+1<<"\n"; tf=true; break; } } if(!tf){ cout<<"TIE\n"; } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/