mxqz
查看原帖
mxqz
400783
Nephren_Sakura楼主2021/12/31 23:59
#include<bits/stdc++.h>
using namespace std;
#define int long long
int q,in[100005],ans[100005],cnt;
vector<int> nbr[100005];
int n,m;
priority_queue<int> pq;
signed main(){
	cin>>q;
	q=3;
	while(q--){
		cin>>n>>m;
		cnt=0;
		memset(in,0,sizeof(in));
		for(int i=1; i<=n; i++)
			nbr[i].clear();
		for(int i=1; i<=m; i++){
			int x,y;
			cin>>x>>y;
			in[x]++;
			nbr[y].push_back(x);
		}
		for(int i=1; i<=n; i++)
			if(!in[i])
				pq.push(i);
		while(pq.empty()==false){
			int x=pq.top();
			pq.pop();
			ans[++cnt]=x;
			for(int i=0; i<nbr[x].size(); i++){
				int y=nbr[x][i];
				in[y]--;
				if(!in[y])
					pq.push(y);
			}
		}
		if(cnt!=n)
			cout<<"Impossible!\n";
		else
			for(int i=n; i>=1; i--)
				cout<<ans[i]<<' ';
		cout<<endl;
	}
    return 0;
}

#7WA

2021/12/31 23:59
加载中...