Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>const int N=505;const int M=20005;struct qq{int x,y;int last;}s[M];int num,last[N];int n,m;void init (int x,int y){num++;s[num].x=x;s[num].y=y;s[num].last=last[x];last[x]=num;return ;}int f[N];bool ooo[N];bool check (int x){for (int u=last[x];u!=-1;u=s[u].last){int y=s[u].y;if (ooo[y]==true) continue;ooo[y]=true;if (f[y]==-1||check(f[y])==true){