Cod sursa(job #1442719)

Utilizator onica.alexandraOnica Ioana-Alexandra onica.alexandra Data 26 mai 2015 08:22:21
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<iostream>
#include<fstream>
#include<stack>
using namespace std;
int N,M, a[20000][20000],viz[25000];
stack<int>lista;
void dfs(int nod)
{
    viz[nod]=1;
    for(int i=1; i<=N; i++)
        if(viz[i]!=1 && a[nod][i]!=0)
            dfs(i);
    lista.push(nod);
}
int main()
{
    int i,x,y;
    ifstream f("sortaret.in");
    f>>N>>M;
    for(i=1; i<=M; i++)
        {
            f>>x>>y;
            a[x][y]=1;
        }
    f.close();
    for(i=1; i<=N; i++)
        if(!viz[i])
        {
            dfs(i);
        }
    ofstream g("sortaret.out");
    while (!lista.empty())
    {
        g << lista.top() << " ";
        lista.pop();
    }
    g.close();
    return 0;
}