Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
56412 安一宸 确定比赛名次 C++ 解答错误 0 5 MS 416 KB 919 2022-08-01 20:37:02

Tests(0/1):


#include<bits/stdc++.h> using namespace std; const int maxn=500; vector<int> graph[maxn]; int inDegree[maxn]; vector<int> TopoSort(int n){ vector<int> topology; priority_queue<int,vector<int>,greater<int> > q; for(int i=1;i<=n;i++){ if(inDegree[i]==0){ q.push(i); } } while(!q.empty()){ int u=q.top(); q.pop(); topology.push_back(u); for(int i=0;i<graph[u].size();i++){ int v=graph[u][i]; inDegree[v]--; if(inDegree[v]==0){ q.push(v); } } } return topology; } int main(){ int n,m; while(cin>>n>>m){ memset(graph,0,sizeof graph); memset(inDegree,0,sizeof inDegree); for(int i=0;i<m;i++){ int from,to; cin>>from>>to; graph[from].push_back(to); inDegree[to]++; } vector<int> v=TopoSort(n); for(int i=0;i<v.size();i++){ if(i==0){ cout<<v[i]; }else{ cout<<" "<<v[i]; } } } return 0; }


测评信息: