📄 1392.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1392 on 2006-01-11 at 02:19:28 */
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
const int MAX = 64;
const int N_MAX = 9;
struct cmp {
bool operator ()(const char* s1, const char* s2) const {
return strcmp(s1, s2) < 0;
}
};
class Team {
public:
char name[8];
int accept, submit[N_MAX];
void clear();
};
void Team::clear() {
accept = 0;
memset(submit, 0, sizeof(submit));
}
int main()
{
map<const char*, int, cmp> dict;
Team team[MAX];
int i, t, T, n;
int accepted[N_MAX], submit[N_MAX];
double used[N_MAX], time;
char qn, r;
scanf("%d", &T);
for(t = 0; t < T; t++) {
if(t != 0) putchar('\n');
scanf("%d", &n);
dict.clear();
for(i = 0; i < N_MAX; i++) used[i] = accepted[i] = submit[i] = 0;
int tn = 0, o;
for(i = 0; i < n; i++) {
scanf("%lf %s %c %c", &time, team[tn].name, &qn, &r);
if(dict.count(team[tn].name) == 0)
team[tn].clear(), dict[team[tn].name] = tn, o = tn++;
else o = dict.find(team[tn].name)->second;
qn -= 'A';
if((team[o].accept & (1 << qn)) == 0) {
team[o].submit[qn]++;
if(r == 'A') {
submit[qn] += team[o].submit[qn]; used[qn] += time;
accepted[qn]++; team[o].accept |= (1 << qn);
}
}
}
for(i = 0; i < N_MAX; i++) {
printf("%c %d", i+'A', accepted[i]);
if(accepted[i] != 0)
printf(" %.2lf %.2lf", (double)submit[i]/accepted[i], used[i]/accepted[i]);
putchar('\n');
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -