您的位置:首页 > 其它

确定比赛名次

2015-05-31 19:58 316 查看

http://acm.hdu.edu.cn/showproblem.php?pid=1285

#include<iostream>

#include<string>

using namespace std;

int n,m,a[510][510],indegree[510],t[510];

int main()

{

// freopen("C:\\Users\\John\\Desktop\\hi.txt","r",stdin);

 int i,j;

 while(cin>>n>>m)

 {

  memset(a,0,sizeof(a));

  memset(indegree,0,sizeof(indegree));

  for(i=1;i<=m;i++)

  {

   int temp1,temp2;

   cin>>temp1>>temp2;

   if(a[temp1][temp2]==0)

   {

    a[temp1][temp2]++;

    indegree[temp2]++;

   }

  }

  for(i=0;i<=n-1;i++)

  {

   for(j=1;j<=n;j++)

    if(indegree[j]==0)

    {

     t[i]=j;

     indegree[j]--;

     for(int k=1;k<=n;k++)

      if(a[j][k])

      {

       indegree[k]--;

      }

      break;

    }

  }

  for(i=0;i<n;i++)

   if(i!=n-1)

    cout<<t[i]<<" ";

   else

    cout<<t[i]<<endl;

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: