Pagini recente » Cod sursa (job #2884206) | Cod sursa (job #2809639)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, grad[100005], q[100005], nr, poz = 1;
vector <int> g[100005];
void citire(){
fin >> n >> m;
int x, y;
for(int i = 1; i <= m; ++i){
fin >> x >> y;
g[x].push_back(y);
grad[y]++;
}
}
void curent(int x){
for(auto &a: g[x]){
grad[a]--;
if(!grad[a])
q[++nr] = a;
}
poz++;
}
void rezolvare(){
for(int i = 1; i <= n; i++)
if(!grad[i])
q[++nr] = i;
while(poz <= nr)
curent(q[poz]);
}
void afisare(){
for(int i = 1; i <= n; i++)
fout << q[i] << ' ';
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}