#include #include #include #include #include #include #include #include #include #include #define FOR(i, v) for (int i = 0; i < v; i++) #define FORD(i, v) for (int i = v - 1; i >= 0; i--) #define REP(i, v, x) for (int i = v; i <= x; i++) #define REPD(i, v, x) for (int i = v; i >= x; i--) #define pb push_back #define fi first #define se second #define mp make_pair #define MAXB 1000 using namespace std; typedef long long i64; typedef unsigned long long u64; char buf[MAXB]; //fgets(buf, MAXB, stdin); void read(int n, char *s, ...) { int p = 0, v; va_list par; va_start(par, s); while (n--) { while (s[p] == ' ') p++; v = 0; while (isdigit(s[p])) v = v * 10 + s[p++] - '0'; *(va_arg(par, int*)) = v; } va_end(par); } const int ro = 0, sc = 1, pa = 2; char s[100]; map > dic; int main() { map t; t[string("Kamen")] = ro; t[string("Nuzky")] = sc; t[string("Papir")] = pa; dic[string("cs")] = t; t.clear(); t[string("Rock")] = ro; t[string("Scissors")] = sc; t[string("Paper")] = pa; dic[string("en")] = t; t.clear(); t[string("Pierre")] = ro; t[string("Ciseaux")] = sc; t[string("Feuille")] = pa; dic[string("fr")] = t; t.clear(); t[string("Stein")] = ro; t[string("Schere")] = sc; t[string("Papier")] = pa; dic[string("de")] = t; t.clear(); t[string("Ko")] = ro; t[string("Koe")] = ro; t[string("Ollo")] = sc; t[string("Olloo")] = sc; t[string("Papir")] = pa; dic[string("hu")] = t; t.clear(); t[string("Sasso")] = ro; t[string("Roccia")] = ro; t[string("Forbice")] = sc; t[string("Carta")] = pa; t[string("Rete")] = pa; dic[string("it")] = t; t.clear(); t[string("Guu")] = ro; t[string("Choki")] = sc; t[string("Paa")] = pa; dic[string("jp")] = t; t.clear(); t[string("Kamien")] = ro; t[string("Nozyce")] = sc; t[string("Papier")] = pa; dic[string("pl")] = t; t.clear(); t[string("Piedra")] = ro; t[string("Tijera")] = sc; t[string("Papel")] = pa; dic[string("es")] = t; t.clear(); string l1, l2; string n1, n2; string v1, v2; bool kon = false; int p1, p2; bool wins[3][3] = {{false, false, false}, {false, false, false}, {false, false, false}}; wins[ro][sc] = true; wins[sc][pa] = true; wins[pa][ro] = true; int cs = 1; while (!kon) { p1 = p2 = 0; scanf("%s", s); l1 = s; scanf("%s", s); n1 = s; scanf("%s", s); l2 = s; scanf("%s", s); n2 = s; while (1) { scanf("%s", s); if (s[0] == '-') break; if (s[0] == '.') { kon = true; break; } v1 = s; scanf("%s", s); v2 = s; if (v1 != v2) { if (wins[dic[l1][v1]][dic[l2][v2]]) p1++; if (wins[dic[l2][v2]][dic[l1][v1]]) p2++; } } printf("Game #%d:\n", cs++); printf("%s: %d point", n1.c_str(), p1); if (p1 != 1) printf("s"); printf("\n"); printf("%s: %d point", n2.c_str(), p2); if (p2 != 1) printf("s"); printf("\n"); if (p1 == p2) printf("TIED GAME\n\n"); else printf("WINNER: %s\n\n", (p1 > p2) ? n1.c_str() : n2.c_str()); } return 0; }