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

📄 1527.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1527 on 2006-02-27 at 12:23:57 */ 
#include <cstdio>
#include <algorithm>
using namespace std;

const int MAX = 32;

int bean[MAX];

class Contestant {
public:
	char name;
	static int totNum, totShare;
	int share;
	void make();
	void print() const;
};
int Contestant::totNum, Contestant::totShare;
void Contestant::make() {
	while(true) {
		char guess; int n;
		scanf("%c:%d", &guess, &n);
		Contestant::totNum++;
		int diff = abs(bean[guess-'a']-n);
		if(diff == 1) share++;
		else if(diff == 0) share += 2;
		if(getchar() == '\n') break;
	}
}
void Contestant::print() const {
	if(share != 0) printf("%c %.2lf\n", name, 2.0*Contestant::totNum / Contestant::totShare*share);
}

int main()
{
	Contestant player[MAX];
	char jar, name;
	int i, t, n;

	for(i = 0; i < MAX; i++) player[i].name = i+'A';
	for(t = 0; (jar = getchar()) != EOF; t++) {
		if(t != 0) putchar('\n');
		Contestant::totNum = Contestant::totShare = 0;
		memset(bean, 0, sizeof(bean)); ungetc(jar, stdin);
		for(i = 0; (jar = getchar()) != '\n'; i++) bean[jar-'a']++;
		scanf("%d", &n);
		for(i = 0; i < MAX; i++) player[i].share = 0;
		for(i = 0; i < n; i++) {
			scanf("\n%c\n", &name);
			player[name-'A'].make();
		}
		for(i = 0; i < MAX; i++) Contestant::totShare += player[i].share;
		for(i = 0; i < MAX; i++) player[i].print();
	}
	
	return 0;
}

⌨️ 快捷键说明

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