Pagini recente » Cod sursa (job #1197146) | Cod sursa (job #585026) | Cod sursa (job #1343285)
//topologival sort
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int V[10000][10000],n,m,t,STK[10000],ocup[10000];
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;
}