AOJ 2400: You Are the Judge
問題
You Are the Judge | Aizu Online Judge
提出ログから求まる順位の順に、ID・正解数・ペネルティを表示せよ
方針
AOJ 1187: ICPC Ranking - はやくプロになりたいとほぼ同じ
コード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for(int i=0; i<(n); ++i) class status { public: int miss[11], solve, time, id; bool operator<(const status & rhs) const{ if(solve > rhs.solve) return true; else if(solve==rhs.solve && time < rhs.time) return true; else if(solve==rhs.solve && time == rhs.time && id < rhs.id) return true; return false; } }; status a[51]; int main(void){ int T, P, R; int team, prob, time; string msg; while(cin >> T >> P >> R && T) { rep(i, 52) { a[i].solve = a[i].time = 0; a[i].id = i+1; rep(j, 11) a[i].miss[j] = 0; } rep(i, R) { cin >> team >> prob >> time >> msg; team--; if(msg == "CORRECT") { a[team].solve++; a[team].time += a[team].miss[prob]*1200+time; } else { a[team].miss[prob]++; } } sort(a, a+T); rep(i, T) cout << a[i].id << " "<< a[i].solve << " " << a[i].time << endl; } }
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=1902008