Cod sursa(job #630704)
| Utilizator | Data | 6 noiembrie 2011 13:20:32 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#include <vector>
#define N 50010
using namespace std;
vector<int> a[N];
int n,m,i,j,nr,c[N];
bool b[N];
ifstream in ("sortaret.in");
ofstream out ("sortaret.out");
void pia (int k) {
if (b[k]) return;
b[k]=1;
for (vector<int>::iterator it=a[k].begin (); it<a[k].end (); it++) pia (*it);
c[nr++]=k;
}
int main () {
in>>n>>m;
while (m--) {
in>>i>>j;
a[i].push_back (j);
}
for (i=1; i<=n; i++) pia (i);
while (--nr>=0) out<<c[nr]<<" ";
out<<"\n";
return 0;
}
