Pagini recente » Cod sursa (job #2926969) | Cod sursa (job #1744323) | Cod sursa (job #1918433) | Cod sursa (job #2038557) | Cod sursa (job #2419672)
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
int n, m, x, y;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
f>>n>>m;
vector <int> ord;
vector <vector < int > > G(n);
vector < int > grad(n, 0);
for(int i = 0;i < n;i++)
{
f>>x>>y;
x--;
y--;
grad[y]++;
G[x].push_back(y);
}
queue <int> q;
for(int i = 0;i < n;++i)
if(grad[i] == 0)
q.push(i);
while(!q.empty()){
int nod_curent = q.front();
q.pop();
ord.push_back(nod_curent);
for(auto nod: G[nod_curent]){
grad[nod]--;
if(grad[nod] == 0)
q.push(nod);
}
}
vector<int>::iterator p;
for(p = ord.begin();p != ord.end();p++)
g<<*p + 1<<" ";
return 0;
}