p2379.cpp

来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 40 行

CPP
40
字号
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1001;
struct pro{ int t,r,vi; };
struct team{ pro p[21];int c,s,r; };
bool cmp(team a,team b){
    return a.s > b.s || a.s == b.s && a.r < b.r
        || a.s == b.s && a.r == b.r && a.c < b.c; 
}
team T[MAXN];
struct inp{ int c,p,t,r; };
bool cmpt(inp a,inp b){ return a.t < b.t; }
inp A[MAXN];
int main(){
    memset(T,0,sizeof(T));
    int C,N;
    cin >> C >> N;
    for(int i = 1;i <= C;++i) T[i].c = i;
    for(int i = 0;i < N;++i) scanf("%d%d%d%d",&A[i].c,&A[i].p,&A[i].t,&A[i].r);
    sort(A,A+N,cmpt);
    int c,p,t,r;
    for(int i = 0;i < N;++i){
        c = A[i].c; p = A[i].p; t = A[i].t; r = A[i].r;
        if(r){
            if(!T[c].p[p].vi){
                ++T[c].s;
                T[c].r += A[i].t + T[c].p[p].r;
                T[c].p[p].vi = 1;
            }else;
        }
        else
            T[c].p[p].r += 1200;
    }
    sort(T+1,T+C+1,cmp);
    cout << T[1].c;
    for(int i = 2;i <= C;++i) cout << " " << T[i].c;
    puts("");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?