#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f #define inf -0x3f3f3f3f #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define mem0(a) memset(a,0,sizeof(a)) #define mem1(a) memset(a,-1,sizeof(a)) #define mem(a, b) memset(a, b, sizeof(a)) typedef long long ll; const int maxn=1000+100; vectorG[maxn]; int vis[maxn]; int height[maxn],height1[maxn]; int vis1[maxn]; int siz[maxn]; void init(int n){ for(int i=1;i<=n;i++){ G[i].clear(); siz[i]=1; } mem0(vis); mem0(vis1); mem0(height1); } void dfs(int u){ vis[u]=1; for(int i=0;i=2) vis1[height[i]]=1; if(height1[height[i]]>=2&&vis1[height[i]]==1){ flag=0; break; } } if(flag==1){ printf("YES\n"); } else printf("NO\n"); } return 0; }