#include <ctime>
#include <cstdlib>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <vector>
#include <map>
#include <stack>
#include <utility>
#include <queue>
#include <list>
#include <iomanip>
#include <set>
#define PI 3.14159265
using namespace std;
int n,m;
vector<list<int > > fail_bajtka, fail_bitka;
bool win, loose;
inline void read_input()
{
cin >> n >> m;
fail_bajtka.resize(n);
fail_bitka.resize(n);
int bajtka,bitka;
char w;
for (int i = 0; i < m; ++i)
{
cin >> bajtka >> w >> bitka;
if (w == '<') fail_bajtka[bajtka-1].push_back(bitka-1);
else fail_bitka[bitka-1].push_back(bajtka-1);
}
}
inline void print_output()
{
if (win)
cout << "WYGRANA" << endl;
else if (loose)
cout << "PRZEGRANA" << endl;
else
cout << "REMIS" << endl;
}
inline void clear_data()
{
for (int i = 0; i < n; ++i)
{
fail_bitka[i].clear();
fail_bajtka[i].clear();
}
}
bool check_win(vector<list<int > >& beating)
{
for (int i = 0; i < n; ++i)
if (beating[i].size() == n)
return true;
return false;
}
void solve()
{
win = false; loose = false;
// INV: win NAND loose
win = check_win(fail_bitka);
loose = check_win(fail_bajtka);
}
int main(int argc, const char *argv[])
{
ios::sync_with_stdio(false);
int t;
cin >> t;
for (int i = 0; i < t; ++i)
{
read_input();
solve();
print_output();
clear_data();
}
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 | #include <ctime> #include <cstdlib> #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <vector> #include <map> #include <stack> #include <utility> #include <queue> #include <list> #include <iomanip> #include <set> #define PI 3.14159265 using namespace std; int n,m; vector<list<int > > fail_bajtka, fail_bitka; bool win, loose; inline void read_input() { cin >> n >> m; fail_bajtka.resize(n); fail_bitka.resize(n); int bajtka,bitka; char w; for (int i = 0; i < m; ++i) { cin >> bajtka >> w >> bitka; if (w == '<') fail_bajtka[bajtka-1].push_back(bitka-1); else fail_bitka[bitka-1].push_back(bajtka-1); } } inline void print_output() { if (win) cout << "WYGRANA" << endl; else if (loose) cout << "PRZEGRANA" << endl; else cout << "REMIS" << endl; } inline void clear_data() { for (int i = 0; i < n; ++i) { fail_bitka[i].clear(); fail_bajtka[i].clear(); } } bool check_win(vector<list<int > >& beating) { for (int i = 0; i < n; ++i) if (beating[i].size() == n) return true; return false; } void solve() { win = false; loose = false; // INV: win NAND loose win = check_win(fail_bitka); loose = check_win(fail_bajtka); } int main(int argc, const char *argv[]) { ios::sync_with_stdio(false); int t; cin >> t; for (int i = 0; i < t; ++i) { read_input(); solve(); print_output(); clear_data(); } return 0; } |
English