Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<vector>
- #include<queue>
- using namespace std;
- int main(){
- int n;
- scanf("%d",&n);
- vector<int> adj[n+1];
- for(int i=1;i<=n;i++){
- int k;
- scanf("%d",&k);
- for(int j=1;j<=k;j++){
- int v;
- scanf("%d",&v);
- adj[i].push_back(v);
- }
- }
- for(int i=1;i<=n;i++){
- bool visited[n+1];for(int j=0;j<=n;j++)visited[j] = false;
- queue<int> q;
- q.push(i);
- bool check = false;
- while(!q.empty() && !check){
- int u = q.front();
- q.pop();
- if(visited[u]){
- check = true;
- continue;
- }
- visited[u] = true;
- for(int j=0;j<adj[u].size();j++){
- q.push(adj[u][j]);
- }
- }
- printf("%s\n",(check ? "YES" : "NO"));
- while(!q.empty())q.pop();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment