奖金

#include<cstdio>
#include<vector>
using namespace std;
int n,m,x,y,head=-1,tail=-1;
const int maxn=5000;
vector<int>map[maxn];
int rudu[maxn];
int p[maxn];
int ans=0,money=100;
void input()
{
scanf("%d%d",&n,&m);
if(m<n-1)
{
printf("条件不足");
return;
}
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
map[x-1].push_back(y-1);
++rudu[y-1];
}
for(int i=0;i<n;i++)
if(rudu[i]==0)
p[++tail]=i;
}
void tuopu()
{
while(head<tail)
{
int k=p[++head];
for(int i=0;i<map[k].size();i++)
{
rudu[map[k][i]]--;
if(rudu[map[k][i]]==0)
{
p[++tail]=i;
}
}
}
}
void shuchu()
{
if(head<n-2)
printf("Poor Xed ");
else
{
ans=n*100+(n*(n-1))/2;
printf("%d",ans);
}
}
int main()
{
input();
if(m<n-1)
return 0;
tuopu();
shuchu();
return 0;
}

原文地址:https://www.cnblogs.com/lutongxi/p/5189319.html