📄 1545.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1545 on 2006-06-10 at 12:31:25 */
#include <cstdio>
#include <algorithm>
#include <functional>
using namespace std;
const int CN = 128, PN = 10;
const int PEN = 20;
class Team {
public:
int num, sol[PN], soln, subn, pt;
void clear(int o) { num = o; subn = soln = pt = 0; memset(sol, 0, sizeof(sol)); }
void submit(int, int, char);
void show() const { if(subn != 0) printf("%d %d %d\n", num, soln, pt); }
bool operator >(const Team&) const;
};
void Team::submit(int o, int time, char s) {
subn++;
switch(s) {
case 'C': if(sol[o] >= 0) { soln++; pt += time+sol[o]*PEN; sol[o] = -5000; } break;
case 'I': sol[o]++; break;
}
}
bool Team::operator >(const Team& t) const {
if(soln != t.soln) return soln > t.soln;
else if(pt != t.pt) return pt < t.pt;
else return num < t.num;
}
int main()
{
Team t[CN];
int i, k;
char line[128];
bool end = false;
for(k = 0; !end; k++) {
if(k != 0) putchar('\n');
for(i = 0; i < CN; i++) t[i].clear(i);
while(true) {
if(gets(line) == NULL) { end = true; break; }
else if(line[0] == 0) break;
int cn, tm, po; char st;
sscanf(line, "%d %d %d %c", &cn, &po, &tm, &st);
t[cn].submit(po, tm, st);
}
sort(t, t+CN, greater<Team>());
for(i = 0; i < CN; i++) t[i].show();
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -