#include<cstdio> const int N=100010,M=400010; int T,n,m,i,j,x,y,g[3][N],v[M],nxt[M],ed,f[N];char ch; inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} inline void add(int&x,int y){v[++ed]=y;nxt[ed]=x;x=ed;} bool check(int o){ for(i=1;i<=n;i++)if(!g[o][i])return 0; for(i=1;i<=n;i++)f[i]=0; for(i=1;i<=n;i++)for(j=g[o][i];j;j=nxt[j])f[v[j]]++; for(i=1;i<=n;i++)if(f[i]==n)return 1; return 0; } bool check2(int o){ for(i=1;i<=n;i++)f[i]=0; for(i=1;i<=n;i++)for(j=g[o][i];j;j=nxt[j])f[v[j]]--; for(i=1;i<=n;i++)if(!f[i])return 1; return 0; } int main(){ read(T); while(T--){ read(n);read(m); for(ed=0,i=1;i<=n;i++)g[0][i]=g[1][i]=g[2][i]=0; while(m--){ read(x); while((ch=getchar())!='<'&&ch!='>'); read(y); if(ch=='>')add(g[0][x],y);else add(g[1][y],x),add(g[2][x],y); } if(check(0)){puts("WYGRANA");continue;} if(check(1)){puts("PRZEGRANA");continue;} puts(check2(2)?"REMIS":"PRZEGRANA"); } 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 | #include<cstdio> const int N=100010,M=400010; int T,n,m,i,j,x,y,g[3][N],v[M],nxt[M],ed,f[N];char ch; inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} inline void add(int&x,int y){v[++ed]=y;nxt[ed]=x;x=ed;} bool check(int o){ for(i=1;i<=n;i++)if(!g[o][i])return 0; for(i=1;i<=n;i++)f[i]=0; for(i=1;i<=n;i++)for(j=g[o][i];j;j=nxt[j])f[v[j]]++; for(i=1;i<=n;i++)if(f[i]==n)return 1; return 0; } bool check2(int o){ for(i=1;i<=n;i++)f[i]=0; for(i=1;i<=n;i++)for(j=g[o][i];j;j=nxt[j])f[v[j]]--; for(i=1;i<=n;i++)if(!f[i])return 1; return 0; } int main(){ read(T); while(T--){ read(n);read(m); for(ed=0,i=1;i<=n;i++)g[0][i]=g[1][i]=g[2][i]=0; while(m--){ read(x); while((ch=getchar())!='<'&&ch!='>'); read(y); if(ch=='>')add(g[0][x],y);else add(g[1][y],x),add(g[2][x],y); } if(check(0)){puts("WYGRANA");continue;} if(check(1)){puts("PRZEGRANA");continue;} puts(check2(2)?"REMIS":"PRZEGRANA"); } return 0; } |