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

📄 2082.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 2082 on 2005-09-30 at 18:59:01 */ 
#include <stdio.h>
#include <string.h>

const char move[3][16] = {"rock", "scissors", "paper"};

int main()
{
	int n, k, a, b;
	int i, j, flag = 0, p, q;
	int win[128], lose[128];
	char ma[16], mb[16];
	
	while(scanf("%d", &n) == 1) {
		if(n == 0) {
			return 0;
		} else {
			if(flag != 0) {
				putchar('\n');
			}
			flag++;
			memset(win, 0, sizeof(win));
			memset(lose, 0, sizeof(lose));
			scanf("%d", &k);
			k *= n * (n - 1) / 2;
			for(i = 0; i < k; i++) {
				scanf("%d %s %d %s", &a, ma, &b, mb);
				p = -1;
				q = -1;
				for(j = 0; j < 3; j++) {
					if(p == -1 && !strcmp(ma, move[j])) {
						p = j;
					}
					if(q == -1 && !strcmp(mb, move[j])) {
						q = j;
					}
				}
				if(p == q) {
					continue;
				} else {
					if((p == 0 && q == 1) || (p == 1 && q == 2) || (p == 2 && q == 0)) {
						win[a]++;
						lose[b]++;
					} else {
						win[b]++;
						lose[a]++;
					}
				}
			}
			for(i = 1; i <= n; i++) {
				if(win[i]+lose[i] == 0) {
					printf("-\n");
				} else {
					printf("%.3lf\n", (double)win[i] / (win[i] + lose[i]));
				}
			}
		}
	}
	
	return 0;
}

⌨️ 快捷键说明

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