行末空格注意去掉(呃,奇奇怪怪)
#include<bits/stdc++.h> using namespace std; unordered_map<int, vector<int>>mp; vector<int>ret; queue<int> q; int main() { int n, m; cin >> n >> m; vector<int> v(n + 2, 0); while(m--) { int a, b; cin >> a >> b; mp[a].push_back(b); v[b]++; } for(int i = 1; i <= n; i++) if(v[i] == 0) q.push(i); while(q.size()) { int t = q.front(); q.pop(); ret.push_back(t); for(auto i : mp[t]) if(--v[i] == 0) q.push(i); } if(ret.size() < n) cout << -1 << endl; else { for(int i = 0; i < n; i++) { cout << ret[i]; if(i == n - 1)cout << '\n'; else cout << ' '; } } return 0; }