Cod sursa(job #246067)
Utilizator | Data | 19 ianuarie 2009 19:59:44 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream>
#include<vector>
#define NMAX 50005
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
vector <int> A[NMAX];
int viz[NMAX], prim[NMAX];
int main()
{
int N, M, i, j, x, y;
f>>N>>M;
for(i=1;i<=M;i++) f>>x>>y, A[x].push_back(y), prim[y]=1;
for(i=1;i<=N;i++) if(!prim[i]) g<<i<<" ", viz[i]=1;
for(i=1;i<=N;i++)
for(j=0;j<A[i].size();j++)
if(!viz[A[i][j]]) g<<A[i][j]<<" ", viz[A[i][j]]=1;
f.close();
g.close();
return 0;
}