Cod sursa(job #630701)
Utilizator | Sunt emo sunt_emo | Data | 6 noiembrie 2011 13:17:14 |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#include <vector>
using namespace std;
vector<int> a[50010];
int n,m,i,j,nr,c[50010];
bool b[50010];
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;
}