範例程式碼 uva10903

//uva10903
#include <cstdio>
#include <string>
#include <iostream>
#define WIN 0
#define LOSE 1
using namespace std;

int main() {
    int n, k;
    int state[105][2];
    int p1, p2;
    string m1, m2;
    bool space = false;

    while (scanf("%d", &n) != EOF && n != 0) {
        scanf("%d", &k);
        if (space) printf("\n");
        space = true;
        memset(state, 0, sizeof(state));
        for (int i = 0; i < k * n * (n - 1) / 2; i++) {
            scanf("%d", &p1);
            cin >> m1;
            scanf("%d", &p2);
            cin >> m2;
            if (m1[0] != m2[0]) {
                if (m1[0] == 'r' && m2[0] == 's' || m1[0] == 's' && m2[0] == 'p' || m1[0] == 'p' && m2[0] == 'r') {
                    state[p1][WIN]++;
                    state[p2][LOSE]++;
                } else {
                    state[p1][LOSE]++;
                    state[p2][WIN]++;
                }
            }
        }
        for (int i = 1; i <= n; i++) {
            if (state[i][WIN] + state[i][LOSE] == 0) {
                printf("-\n");
            } else {
                printf("%.3lf\n", (double)state[i][WIN] / (double)(state[i][WIN] + state[i][LOSE]));
            }
        }
    }
    return 0;
}