寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C++ #Volume5 - 0593 : 投票 (Vote)

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