/* Copyright 2016 AcrossTheSky */ #include <iostream> #include <cstdio> #include <utility> #include <cassert> #include <map> #include <vector> #include <deque> #include <queue> #include <stack> #include <set> #include <cstring> #include <cstdlib> #include <cctype> #include <sstream> #include <fstream> #include <string> #include <cmath> #include <algorithm> #define REP(i, a, b) for (int i = (a); i <= (b); ++i) #define PER(i, a, b) for (int i = (a); i >= (b); --i) #define RVC(i, c) fot (int i = 0; i < (c).size(); ++i) #define RED(k, u) for (int k = head[(u)]; k; k = edge[k].next) #define lowbit(x) ((x) & (-(x))) #define CL(x, v) memset(x, v, sizeof x) #define MP std::make_pair #define PB push_back #define FR first #define SC second #define rank rankk #define next nextt #define link linkk #define index indexx #define abs(x) ((x) > 0 ? (x) : (-(x))) using namespace std; typedef long long LL; typedef pair<int, int> PII; template<class T> inline bool getmin(T *a, const T &b) { if (b < *a) { *a = b; return true; } return false; } template<class T> inline bool getmax(T *a, const T &b) { if (b > *a) { *a = b; return true; } return false; } template<class T> inline void read(T *a) { char c; while (isspace(c = getchar())) {} bool flag = 0; if (c == '-') flag = 1, *a = 0; else *a = c - 48; while (isdigit(c = getchar())) *a = *a * 10 + c - 48; if (flag) *a = -*a; } const int mo = 1000000007; template<class T> T pow(T a, T b, int c = mo) { T res = 1; for (T i = 1; i <= b; i <<= 1, a = 1LL * a * a % c) if (b & i) res = 1LL * res * a % c; return res; } /*======================= TEMPLATE =======================*/ const int N = 300000; int a[N], b[N], T; int n, m; int main() { cin >> T; while (T--) { read(&n); read(&m); REP(i, 1, n) a[i] = b[i] = 0; while(m--) { int x, y; char c; read(&x); while (isspace(c = getchar())); read(&y); if (c == '>') ++b[y]; else ++a[y]; } int flag = -1; REP(i, 1, n) if (b[i] == n) flag = 1; if (flag == -1) REP(i, 1, n) if (!a[i]) flag = 0; if (flag == 1) puts("WYGRANA"); else if (flag == -1) puts("PRZEGRANA"); else puts("REMIS"); } return 0; }
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | /* Copyright 2016 AcrossTheSky */ #include <iostream> #include <cstdio> #include <utility> #include <cassert> #include <map> #include <vector> #include <deque> #include <queue> #include <stack> #include <set> #include <cstring> #include <cstdlib> #include <cctype> #include <sstream> #include <fstream> #include <string> #include <cmath> #include <algorithm> #define REP(i, a, b) for (int i = (a); i <= (b); ++i) #define PER(i, a, b) for (int i = (a); i >= (b); --i) #define RVC(i, c) fot (int i = 0; i < (c).size(); ++i) #define RED(k, u) for (int k = head[(u)]; k; k = edge[k].next) #define lowbit(x) ((x) & (-(x))) #define CL(x, v) memset(x, v, sizeof x) #define MP std::make_pair #define PB push_back #define FR first #define SC second #define rank rankk #define next nextt #define link linkk #define index indexx #define abs(x) ((x) > 0 ? (x) : (-(x))) using namespace std; typedef long long LL; typedef pair<int, int> PII; template<class T> inline bool getmin(T *a, const T &b) { if (b < *a) { *a = b; return true; } return false; } template<class T> inline bool getmax(T *a, const T &b) { if (b > *a) { *a = b; return true; } return false; } template<class T> inline void read(T *a) { char c; while (isspace(c = getchar())) {} bool flag = 0; if (c == '-') flag = 1, *a = 0; else *a = c - 48; while (isdigit(c = getchar())) *a = *a * 10 + c - 48; if (flag) *a = -*a; } const int mo = 1000000007; template<class T> T pow(T a, T b, int c = mo) { T res = 1; for (T i = 1; i <= b; i <<= 1, a = 1LL * a * a % c) if (b & i) res = 1LL * res * a % c; return res; } /*======================= TEMPLATE =======================*/ const int N = 300000; int a[N], b[N], T; int n, m; int main() { cin >> T; while (T--) { read(&n); read(&m); REP(i, 1, n) a[i] = b[i] = 0; while(m--) { int x, y; char c; read(&x); while (isspace(c = getchar())); read(&y); if (c == '>') ++b[y]; else ++a[y]; } int flag = -1; REP(i, 1, n) if (b[i] == n) flag = 1; if (flag == -1) REP(i, 1, n) if (!a[i]) flag = 0; if (flag == 1) puts("WYGRANA"); else if (flag == -1) puts("PRZEGRANA"); else puts("REMIS"); } return 0; } |