⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1392.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 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 + -