Pagini recente » Cod sursa (job #2945213) | Clasament oji-2004-ix | Cod sursa (job #1174029) | Cod sursa (job #800390) | Cod sursa (job #2427858)
#include <iostream>
#include <fstream>
#define NMAX 100001
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct Nod {
int info;
Nod *urm;
};
Nod *Lista[NMAX], *p;
int grad_interior[NMAX], N, M;
void citire() {
int i, j;
fin >> N >> M;
while (M) {
fin >> i >> j;
p = new Nod;
p->info = j;
p->urm = Lista[i];
Lista[i] = p;
grad_interior[j]++;
M--;
}
}
int main() {
citire();
bool vizitat[NMAX] = {false}, toate_eliminate = false;
do {
toate_eliminate = true;
for (int i = 1; i <= N; ++i)
if (grad_interior[i] == 0 && !vizitat[i]) {
fout << i << ' ';
p = Lista[i];
while (p) {
grad_interior[p->info]--;
p = p->urm;
}
vizitat[i] = true;
toate_eliminate = false;
}
}while(!toate_eliminate);
}