// pierwszy wygrywa tylko jak ma krawedzie ze wszystkich do jakiegos jednego node'a drugiego // drugi wygrywa jak z kazdego jego cos wychodzi // wpp. remis #include <cstdio> #include <algorithm> constexpr int MAXN = 100001; int t, snd_in[MAXN], snd_out[MAXN]; std::vector<int> ins, outs; void solve_case(int cleanup) { int n, m, a, b; char c; scanf("%d%d", &n, &m); int fst_wins = 0, snd_0_out = n; for (int i = 0; i < m; ++i) { scanf("%d %c %d", &a, &c, &b); // printf("%d -- %c -- %d\n", a, c, b); --a; --b; if (c == '>') { ++snd_in[b]; ins.push_back(b); if (snd_in[b] == n) { fst_wins = 1; } } else { ++snd_out[b]; outs.push_back(b); if (snd_out[b] == 1) { --snd_0_out; if (!snd_0_out) { fst_wins = -1; } } } } printf("%s\n", fst_wins == 1 ? "WYGRANA" : fst_wins == 0 ? "REMIS" : "PRZEGRANA"); if (cleanup) { for (int i : ins) { --snd_in[i]; } for (int i : outs) { --snd_out[i]; } ins.clear(); outs.clear(); } } int main() { scanf("%d", &t); while (t--) { solve_case(t); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | // pierwszy wygrywa tylko jak ma krawedzie ze wszystkich do jakiegos jednego node'a drugiego // drugi wygrywa jak z kazdego jego cos wychodzi // wpp. remis #include <cstdio> #include <algorithm> constexpr int MAXN = 100001; int t, snd_in[MAXN], snd_out[MAXN]; std::vector<int> ins, outs; void solve_case(int cleanup) { int n, m, a, b; char c; scanf("%d%d", &n, &m); int fst_wins = 0, snd_0_out = n; for (int i = 0; i < m; ++i) { scanf("%d %c %d", &a, &c, &b); // printf("%d -- %c -- %d\n", a, c, b); --a; --b; if (c == '>') { ++snd_in[b]; ins.push_back(b); if (snd_in[b] == n) { fst_wins = 1; } } else { ++snd_out[b]; outs.push_back(b); if (snd_out[b] == 1) { --snd_0_out; if (!snd_0_out) { fst_wins = -1; } } } } printf("%s\n", fst_wins == 1 ? "WYGRANA" : fst_wins == 0 ? "REMIS" : "PRZEGRANA"); if (cleanup) { for (int i : ins) { --snd_in[i]; } for (int i : outs) { --snd_out[i]; } ins.clear(); outs.clear(); } } int main() { scanf("%d", &t); while (t--) { solve_case(t); } } |