#include #include #include using namespace std; vector to[1010]; int vis[1010]; int dfs(int node,int ff) { vis[node]=1; int f=0; for(vector::iterator i=to[node].begin();i!=to[node].end();i++) { if(vis[*i]==0) f++; } if(ff==1&&f!=0) return 0; if(f==1) { for(vector::iterator i=to[node].begin();i!=to[node].end();i++) { if(vis[*i]==0) { if(dfs(*i,ff)==0) return 0; } } } else { for(vector::iterator i=to[node].begin();i!=to[node].end();i++) { if(vis[*i]==0) { if(dfs(*i,1)==0) return 0; } } } return 1; } int main() { int n; while(scanf("%d",&n)!=EOF) { int a,b; int i,j; for(i=1;i<=n;i++) to[i].clear(); for(i=1;i