#include <bits/stdc++.h>
#define f1(x , y) for(int i = x ; i <= y ; i++)
#define f2(x , y) for(int j = x ; j <= y ; j++)
#define ri register int
#define ll long long
#define il inline
#define cs const
using namespace std;
il int rd(){
int out = 0 , flag = 1; char c = getchar();
while(c < '0' || c >'9'){if(c == '-')flag = -1; c = getchar();}
while(c >= '0' && c <= '9'){out = out * 10 + c - '0'; c = getchar();}
return flag * out;
}
cs int N = 1e5 + 10;
int T , n , m , in[N];
vector <int> v[N] , sx;
priority_queue <int , vector <int> , greater <int>> q;
il void all_clear(){
while(q.empty()) q.pop();
f1(1 , n) v[i].clear() , in[i] = 0;
}
int main(){
T = rd();
while(T--){
n = rd() , m = rd();
all_clear();
f1(1 , m){
int uu = rd() , vv = rd();
v[uu].push_back(vv);
in[vv]++;
}f1(1 , n) if(!in[i]) q.push(i);
while(q.empty()){
int now = q.top();
q.pop();
sx.push_back(now);
for(auto nex : v[now])
if(--in[nex] == 0)
q.push(nex);
}if(sx.size() != n) cout << "Impossible!" << endl;
else{for(auto v : sx) cout << v << " "; cout << endl;}
}return 0;cout << 1 << endl;
}
这个题的这里
f1(1 , n) if(!in[i]) q.push(i);
过不了,是什么问题啊