Mai intai trebuie sa te autentifici.
Cod sursa(job #2360387)
Utilizator | Data | 1 martie 2019 19:32:10 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
#define NMax 23169
int N,A[NMax][NMax];
int M;
void citire()
{
f>>N>>M;
short int x,y;
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
A[i][j]=0;
for(int i=1;i<=M;i++)
{
f>>x>>y;
A[x][y]=1;
}
f.close();
}
void parcurgere()
{
int C[NMax],V[NMax];
for(int i=1;i<=N;i++)
V[i]=0;
V[1]=1;
C[1]=1;
short int p=1,u=1;
while(p<=u)
{
for(int i=1;i<=N;i++)
if(A[C[p]][i]==1 && V[i]==0)
{
u++;
C[u]=i;
V[i]=1;
}
p++;
}
for(int i=1;i<=u;i++)
g<<C[i]<<" ";
g.close();
}
int main()
{
citire();
parcurgere();
return 0;
}