Pagini recente » Cod sursa (job #2465702) | Cod sursa (job #1467324) | Cod sursa (job #3186182) | Cod sursa (job #1649391) | Cod sursa (job #2457850)
#include <iostream>
#include <fstream>
#include <vector>
#define limit 50100
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,a,b;
vector <int>G[limit];
int grad[limit]{};
int sortat[limit]{};
void citire(){
fin>>n>>m;
for(int i=1;i<=m;i++){
G[a].push_back(b);
grad[b]++;
}
}
void sortare(){
int x;
vector <int>::iterator j;
for(x=1;x<=n;x++){
if(grad[x]==0){
sortat[++sortat[0]]=x;
}
}
for(int i=1;i<=n;i++){
x=sortat[i];
for( j=G[x].begin();j!=G[x].end();++j){
grad[*j]--;
if(grad[*j]==0){
sortat[++sortat[0]]=*j;
}
}
}
}
int main()
{citire();
sortare();
for(int i=1;i<=n;i++){
fout<<sortat[i]<<" ";
}
fin.close();
fout.close();
return 0;
}