Cod sursa(job #2377184)

Utilizator sidorencuoanaSidorencu Oana Alexandra sidorencuoana Data 8 martie 2019 22:52:56
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

int n,m;
struct Muchii{int x,y,k;}v[100001];
int st[50001],in,sf;

void Citire()
{
     f>>n>>m;
     for(int i=1;i<=m;i++)
     f>>v[i].x>>v[i].y;
}

void Aplica(int a, int b,int j)
{
     st[++sf]=b;
     v[j].k=1;
     for(int i=1;i<=m;i++)
     if(v[i].k==0 && v[i].x==b)
     Aplica(v[i].x,v[i].y,i);

}

void Gen()
{
     in=1; sf=1;
     st[in]=v[1].x;
     while(in<=sf)
     {
          for(int i=1;i<=m;i++)
            if(v[i].x==st[in] && v[i].k==0)
            {
                 Aplica(v[i].x,v[i].y,i);
            }
            in++;
     }
}

int main()
{
    Citire();
    g<<"990";
    Gen();
    for(int i=1;i<=n;i++)
    g<<st[i]<<" ";
    return 0;
}