Pagini recente » Cod sursa (job #1270608) | Cod sursa (job #2746697) | Cod sursa (job #260614) | Cod sursa (job #305290) | Cod sursa (job #2335399)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int const maxim=50000;
vector <int> matrice[maxim];
int grade[maxim];
int n,m,contor=0;
int coada[maxim];
void citire(){
in >> n >> m;
for(int i=1;i<=m;i++){
int a,b;
in >> a >> b;
matrice[a].push_back(b);
grade[b]++;
}
}
void aflare(){
for(int i=1;i<=n;i++)if(grade[i]==0){
coada[contor]=i;
contor++;
};
cout << "done";
for(int i=0;i<n;i++){
int x=coada[i];
for(size_t j=0;j<matrice[x].size();j++){
int vecin=matrice[x][j];
grade[vecin]--;
if(grade[vecin]==0){
coada[contor]=vecin;
contor++;}
}
}
}
void afisare(){
for(int i=0;i<contor;i++){
out << coada[i] << " ";
}
}
int main(){
citire();
aflare();
afisare();
return 0;}