Mai intai trebuie sa te autentifici.
Cod sursa(job #2370713)
Utilizator | Data | 6 martie 2019 13:17:48 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.08 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int Nmax=50005;
const int Mmax=100005;
int N,M;
int O[Nmax],Nod[Nmax];
struct muchii
{
int x,y;
}G[Mmax];
void read()
{
fin>>N>>M;
int x,y;
for(int i=0;i<M;i++)
{
fin>>x>>y;
G[i].x=x;
G[i].y=y;
}
for(int i=1;i<=N;i++)
{
O[i]=i;
Nod[i]=i;
}
}
void sorteaza()
{
int schimb=1,aux;
do
{
schimb=0;
for(int i=0;i<M;i++)
{
int nod=G[i].x;
int vecin=G[i].y;
if(O[nod]>O[vecin])
{
aux=O[nod];
O[nod]=O[vecin];
O[vecin]=aux;
schimb=1;
}
}
}while(schimb);
}
void afiseaza()
{
for(int i=1;i<=N;i++)
fout<<Nod[O[i]]<<" ";
}
int main()
{
read();
sorteaza();
afiseaza();
return 0;
}