Pagini recente » Cod sursa (job #2098897) | Cod sursa (job #496537) | Cod sursa (job #958959) | Cod sursa (job #2636306) | Cod sursa (job #1926340)
#include <fstream>
#include <vector>
#define NMAX 50005
using namespace std;
const char inname[] = "sortaret.in";
const char outname[] = "sortaret.out";
ifstream fin(inname);
ofstream fout(outname);
struct liste{
vector<int> vecini;
int gradint;
};
liste L[NMAX];
int n, m, nrsel, viz[NMAX];
void citire();
void stopo();
int main(){
citire();
stopo();
fin.close();
fout.close();
return 0;
}
void citire(){
int i, x, y;
fin >> n >> m;
for(i=1; i<=m; i++){
fin >> x >> y;
L[x].vecini.push_back(y);
L[y].gradint++;
}
}
void stopo(){
int i, j;
while(nrsel < n){
for(i=1; i<=n; i++)
if(L[i].gradint == 0 && viz[i] == 0){
nrsel++;
viz[i] = 1;
fout << i << ' ';
for(j=0; j<L[i].vecini.size(); j++)
L[L[i].vecini[j]].gradint--;
}
}
}