题目: Milk Factory
题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/269908/problem/F
题目描述:
给出有向图,找出所有点都能到达的点。
方法:dfs
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int m,d[105],n;
struct way
{
int s,e;
}a[105];
bool com(way p1,way p2)
{
return p1.e<p2.e;
}
void dfs(int x)
{
m++;
int i;
for(i=d[x];a[i].e==x&&i<n;i++)
{
dfs(a[i].s);
}
}
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<n;i++)
{
scanf("%d%d",&a[i].s,&a[i].e);
}
sort(a+1,a+n,com);
for(i=n-1;i;i--) d[a[i].e]=i;
for(i=1;i<=n;i++)
{
if(d[i])
{m=0;
dfs(i);
if(m==n)
{
printf("%d\n",i);
return 0;
}
}
}
printf("-1\n");
return 0;
}