全WA求助
查看原帖
全WA求助
565378
Orange1015楼主2022/8/23 11:57
#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
vector<int> e[maxn];
priority_queue<int> q;
int n,m,x,y,T,idx=0;
int in[maxn],ans[maxn];
int main(){
	cin >> T;
	while(T--){
		cin >> n >> m;
		idx=0;
		memset(ans,0,sizeof(ans));
		memset(in,0,sizeof(in));
		for(int i=1;i<=n;i++) e[i].clear();
		for(int i=1;i<=n;i++){
			cin >> x >> y;
			e[y].push_back(x);
			in[x]++;
		}
		for(int i=1;i<=n;i++)
		if(in[x]==0){
			q.push(i);
			break;
		}
		while(!q.empty()){
			int t=q.top();
			q.pop();
			ans[++idx]=t;
			int s=e[t].size();
			for(int i=0;i<s;i++){
				int nt=e[t][i];
				in[nt]--;
				if(in[nt]==0)
					q.push(e[t][i]);
			}
		}
		if(idx<n) cout << "Impossible!";
		else for(int i=n;i>=1;i--) cout << ans[i] << ' ';
		cout << '\n';
	}
	return 0;
}
2022/8/23 11:57
加载中...