Algoogle

Algorithm for Programming Contest

AOJ 0593 Vote

Category: AOJ Tag: implementation

Vote

問題概要


面白い順に競技のコストが与えられる. また審査員の許容できるコストの上限が与えられる.
それぞれの審査員が許容できるコスト以下で一番おもしろい競技に投票するとき一番票を獲得するのはどの競技か.

解法


競技の数も審査員の数も高々1000なので審査員ごとに面白い順に条件をみたすか見ていく.
条件を満たせばそれに投票して次の審査員について調べる.

コード


(0593.cpp) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define repi(i,a,b) for(int i = (a); i < (b); i++)
#define rep(i,a) repi(i,0,a)

int N, M, A[1024], B[1024], cnt[1024];

void input(){
    cin >> N >> M;
    rep(i,N) cin >> A[i];
    rep(i,M) cin >> B[i];
}

int solve(){
    rep(i,M) rep(j,N) if(A[j] <= B[i]){
        cnt[j]++;
        break;
    }
    int m = -1, ans;
    rep(i,N) if(m < cnt[i]) {
        m = cnt[i];
        ans = i+1;
    }
    return ans;
}

signed main(){
    input();
    cout << solve() << endl;
    return 0;
}

Comments