#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
bool cicle[1001]={0};
bool visited[1001];
int save[1001];
vector <vector <int> > g(1001);
void dfs(int start,int index){
save[index]=start;
visited[start]=true;
int q,r;
for (q=0;q<g[start].size();q++)
if (visited[g[start][q]])
{
for (r=0;r<index;r++)
if (save[r]==g[start][q]) break;
for (;r<=index;r++)
cicle[save[r]]=true;
}
else
dfs(g[start][q],index+1);
}
int main(){
int N;
int i,j,k,t;
scanf("%d",&N);
for (i=1;i<=N;i++)
{
scanf("%d",&k);
for (j=0;j<k;j++)
{
scanf("%d",&t);
g[i].push_back(t);
}
}
for (i=1;i<=N;i++)
if (cicle[i]) printf("%d ",i);
else
{
for (j=1;j<=N;j++)
visited[j]=false;
dfs(i,0);
if (cicle[i]) printf("%d ",i);
}
return 0;
}
Бидний гаргасан амжилтууд (Team SMCS1)
12 лет назад
3 комментария:
daraagiin temtseen hezee boloh ve
Buruu bodolt baina.
tehh ineedtei aldaa hiijee
Отправить комментарий