Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 『投票 (Vote)』
https://onlinejudge.u-aizu.ac.jp/problems/0593
20XX年に東京で世界的なスポーツ大会が開かれることになった.
プログラミングコンテストはスポーツとして世界で楽しまれており,競技として採用される可能性がある.
競技のリストと委員の情報が与えられたとき,最も多く票を獲得した競技の番号を求めるプログラムを作成せよ.
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #Volume5 - 0593 : Vote
/* Aizu Online Judge in C++ #Volume5 - 0593 : Vote https://onlinejudge.u-aizu.ac.jp/problems/0593 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m; cin>>n>>m; vector<pair<int,int> > a(n); vector<int> b(m); for(int i=0;i<n;i++){ int j; cin>>j; a[i].first=j; a[i].second=0; } for(int i=0;i<m;i++){ cin>>b[i]; for(int j=0;j<n;j++){ if(a[j].first<=b[i]){ a[j].second+=1; break; } } } vector<pair<int,int> > ans(n); for(int i=0;i<n;i++){ ans[i].first=a[i].second; ans[i].second=i+1; } sort(ans.rbegin(),ans.rend()); cout<<ans[0].second<<endl; return 0; }
設問の出典は、第13回日本情報オリンピック 予選(過去問)です。
問題は、AtCoder Problemsでも公開されています。
atcoder.jp