📄 1285 确定比赛名次.cpp
字号:
//拓扑排序
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
struct Rank
{
int in,out;
int adj[501];
};
Rank q[501];
int n,m;
void tpsort()
{
int i,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(q[j].in==0)
break;
q[j].in--;
for(k=0;k<q[j].out;k++)
q[ q[j].adj[k] ].in--;
printf("%d",j);
if(i<n)
printf(" ");
else
printf("\n");
}
}
int main()
{
int i;
int p1,p2;
while(scanf("%d %d",&n,&m)==2)
{
memset(q,0,sizeof(q));
for(i=0;i<m;i++)
{
scanf("%d %d",&p1,&p2);
q[p1].adj[ q[p1].out++ ]=p2;
q[p2].in++;
}
tpsort();
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -