#include<iostream> #include<iostream> #include<cstdio> #include<sstream> #include<algorithm> #include<cmath> #include<vector> #include<numeric> #include<cstring> #define db(a) cout << #a << " = " << a << endl #define db2(a, b) cout << #a << " = " << a << " " << #b << " = " << b << endl using namespace std; struct player { int win, lose; player(int win = 0, int lose = 0) : win(win), lose(lose) {} }; int main() { int p1, p2, n, k; string m1, m2; char linea[100]; stringstream ss; bool first = true; while (scanf("%d %d\n",&n , &k) == 2){ if (n == 0) break; if (!first) printf("\n"); else first = false; player jugadores[n]; int times = k * n * (n - 1) / 2; for (; times-- ; ) { gets(linea); ss.clear(); ss << linea; ss >> p1 >> m1 >> p2 >> m2; if ( m1[0] == 'r') { if (m2[0] == 's') jugadores[p1 - 1].win++, jugadores[p2 - 1].lose++; else if (m2[0] == 'p') jugadores[p1 - 1].lose++, jugadores[p2 - 1].win++; continue; } if ( m1[0] == 's') { if (m2[0] == 'p') jugadores[p1 - 1].win++, jugadores[p2 - 1].lose++; else if (m2[0] == 'r') jugadores[p1 - 1].lose++, jugadores[p2 - 1].win++; continue; } if ( m1[0] == 'p') { if (m2[0] == 'r') jugadores[p1 - 1].win++, jugadores[p2 - 1].lose++; else if (m2[0] == 's') jugadores[p1 - 1].lose++, jugadores[p2 - 1].win++; continue; } } for (int i = 0;i < n; i++) { if (jugadores[i].win + jugadores[i].lose == 0) puts("-"); else printf("%.3f\n", (double)jugadores[i].win / (jugadores[i].win + jugadores[i].lose)); } } return 0; }
viernes, 18 de noviembre de 2011
10903 - Rock-Paper-Scissors Tournament, uva
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario