#include <algorithm>
#include <cstdio>
#include <utility>
#include <vector>
using namespace std;
unsigned constexpr N = 1e5 + 10;
signed char enemyChoice(unsigned const n, vector<signed char> const & adj) {
signed char mini = 0;
if(adj.size() == n)
mini = 1;
for(auto const & w : adj)
mini = min(mini, w);
return mini;
}
void testCase() {
vector<signed char> adj[N];
unsigned n, m;
scanf("%u%u", &n, &m);
while(m--) {
unsigned a, b;
char w;
scanf("%u %c%u", &a, &w, &b);
adj[b].emplace_back(w == '>' ? 1 : -1);
}
signed char maxi = -1;
for(unsigned enemy = 1 ; enemy <= n ; ++enemy)
maxi = max(maxi, enemyChoice(n, move(adj[enemy])));
switch(maxi) {
case 1:
printf("WYGRANA\n");
break;
case 0:
printf("REMIS\n");
break;
case -1:
printf("PRZEGRANA\n");
break;
}
}
int main() {
unsigned char t;
scanf("%hhu", &t);
while(t--)
testCase();
}
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 | #include <algorithm> #include <cstdio> #include <utility> #include <vector> using namespace std; unsigned constexpr N = 1e5 + 10; signed char enemyChoice(unsigned const n, vector<signed char> const & adj) { signed char mini = 0; if(adj.size() == n) mini = 1; for(auto const & w : adj) mini = min(mini, w); return mini; } void testCase() { vector<signed char> adj[N]; unsigned n, m; scanf("%u%u", &n, &m); while(m--) { unsigned a, b; char w; scanf("%u %c%u", &a, &w, &b); adj[b].emplace_back(w == '>' ? 1 : -1); } signed char maxi = -1; for(unsigned enemy = 1 ; enemy <= n ; ++enemy) maxi = max(maxi, enemyChoice(n, move(adj[enemy]))); switch(maxi) { case 1: printf("WYGRANA\n"); break; case 0: printf("REMIS\n"); break; case -1: printf("PRZEGRANA\n"); break; } } int main() { unsigned char t; scanf("%hhu", &t); while(t--) testCase(); } |
English