Pagini recente » Cod sursa (job #2364362) | Monitorul de evaluare | Cod sursa (job #2405487) | Cod sursa (job #506037) | Cod sursa (job #2680812)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>v[50001];
int grad[50001],q[100001],k=1;
int main () {
int n,m,x,y,i=1;
fin>>n>>m;
for(i=1;i<=m;i++){
fin>>x>>y;
v[x].push_back(y);
grad[y]++;
}
for(i=1;i<=n;i++)
if(grad[i]==0){
q[k]=i;
k++;
}
for(i=1;i<=n;i++){
for(int j=0;j<v[q[i]].size();j++){
grad[v[q[i]][j]]--;
if(grad[v[q[i]][j]]==0){
q[k]=v[q[i]][j];
k++;
}
}
}
for(i=1;i<=n;i++)
fout<<q[i]<<" ";
return 0;
}