Cod sursa(job #1334255)

Utilizator GosulyGosuly Robert Gosuly Data 4 februarie 2015 09:40:06
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in ("sortaret.in");
ofstream out ("sortaret.out");
int m,n,k,i,j,t;
int V[1000][1000],D[50000],STK[50000];
int DFS(int k)
{
    if(D[k]==0){
        D[k]=1;
            for (int i=1;i<=n;i++)
            {
                if(V[i][k]==0)
                    DFS(i);
            }
        STK[t--]=k;
    }

}

int main()
{
    in>>n;
    in>>m;
    t=n;
    for(int i=1;i<=m;i++)
    {
        in>>k>>j;
        V[k][j]=1;
    }
    cout<<"  ";
    for(int i=1;i<=n;i++)
        cout<<i<<' ';
    cout<<endl;
    for (int i=1;i<=n;i++)
    { cout<<i<<' ';
        for (int j=1;j<=n;j++)
        {
            cout<<V[i][j]<<' ';
        }
        cout<<endl;
    }
    for(int i=1;i<=n;i++)
        DFS(i);

    for(int i=1;i<=n;i++)
        out<<STK[i]<<' ';

    in.close();
    out.close();
    return 0;
}