Mai intai trebuie sa te autentifici.

Cod sursa(job #2370713)

Utilizator CarmenRo33Anghel Ionela Carmen CarmenRo33 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;
}