Cod sursa(job #1191218)

Utilizator breahnadavidBreahna David breahnadavid Data 26 mai 2014 19:35:55
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<iostream>
#include<fstream>

using namespace std;

ifstream f;
ofstream g;

int i,j,m,n,k,**t,*a,nem;
char *b;

void caut(int p)
        {
        a[p]=1;
        for(int i=0;i<n;i++)
                {
                 if(t[p][i]==1&&a[i]==0){t[p][i]=0;caut(i);}
                }
        if(a[p]==1)
                {
                b[nem]='p+1';
                nem++;
                a[p]=2;
                }

        }

int main()
{
f.open("sortaret.in");
g.open("sortaret.out");
f>>n;
f>>m;

t=new int*[n];
a=new int[n];
b=new char[n];
for(i=0;i<n;i++)
        {
        t[i]=new int[n];
        a[i]=0;
        b[i]=0;
        for(j=0;j<n;j++)t[i][j]=0;
        }


for(i=0;i<m;i++)
        {
        f>>k>>j;
        t[k-1][j-1]=1;
        }

nem=0;
for(i=0;i<n;i++)
        {
        if(a[i]==0)caut(i);

        }

nem--;
while(nem>=0){g<<b[nem]<<' ';nem--;}

g.close();
return 0;
}