// 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); } } |
English