Cod sursa(job #1343283)

Utilizator GosulyGosuly Robert Gosuly Data 15 februarie 2015 09:57:30
Problema Sortare topologica Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
//topologival sort
#include <iostream>
#include <fstream>

using namespace std;

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

int V[1000][1000],n,m,t,STK[1000],ocup[1000];

void read(){
    in>>n;
    in>>m;
    t=n;
    int k,j;
    for (int i=1;i<=m;i++)
        {
            in>>k>>j;
            V[k][j]=1;
        }
}
void printMatrix(){

        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;
    }
}
void DFS(int k){
    if(ocup[k]==0)
        {

            ocup[k]=1;
        for (int i=1;i<=n;i++)
            cout<<ocup[i]<<' ';
            cout<<endl;
            for(int i=1;i<=n;i++)
                if((V[k][i]==1)&&(ocup[i]==0))
                {
                    DFS(i);
                }
                STK[t--]=k;

        }
}
void printSTK(){

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

}
int main()
{
    read();
    for(int i=1;i<=n;i++)
        DFS(i);
    printSTK();
    cout<<endl;
    cout<<V[1][2];
    in.close();
    out.close();

    return 0;
}