Pagini recente » Cod sursa (job #975506) | Cod sursa (job #1981677) | Cod sursa (job #2714903) | Cod sursa (job #2504266) | Cod sursa (job #1662510)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> succ[50002];
int grad[50002],nSucc[50002];
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,c1,c2;
fin>>n>>m;
for(int i=0;i<m;i++) {
fin>>c1>>c2;
grad[c2]++;
nSucc[c1]++;
succ[c1].push_back(c2);
}
int elem=0,rasp[50002];
bool sel[50002];
while(elem<n) {
for(int i=1;i<=n;i++) {
if(!sel[i]&&grad[i]==0) {
sel[i]=true;
rasp[elem]=i;
elem++;
for(int j=0;j<nSucc[i];j++)
grad[succ[i][j]]--;
}
}
}
for(int i=0;i<n;i++)
fout<<rasp[i]<<" ";
return 0;
}