Cod sursa(job #2810060)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 28 noiembrie 2021 12:57:08
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");
vector <int> adj[50001];
vector <int> l;
int marcat[50001];
int x,y,n,m;
void dfs(int nod){
marcat[nod]=1;
for(int i=adj[nod].size()-1;i>=0;--i)
    if(marcat[adj[nod][i]]==0)
        dfs(adj[nod][i]);
marcat[nod]=2;
//cout<<nod<< "
l.push_back(nod);
}
int main()
{
    fscanf(f,"%d %d",&n,&m);
    while(m--){
        fscanf(f,"%d %d ",&x,&y);
        adj[x].push_back(y);
    }
    for(int i=1;i<=n;++i)
        if(marcat[i]==0)
            dfs(i);
    for(int i=l.size()-1;i>=0;--i)
        fprintf(g,"%d ",l[i]);
}