Cod sursa(job #1511310)

Utilizator alexandra5004Rotaru Alexandra alexandra5004 Data 26 octombrie 2015 13:51:20
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.48 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
/*
int A[101][101],n,m;
int citire()
{ int x,y,z,i;
  cin>>n>>m;
  for(i=1;i<=m;i++)
    { cin>>x>>y;
      A[x][y]=1;
    }

}
int main()
{ int x,y,z;
    citire();
  for(x=1;x<=n;x++)
    for(y=1;y<=n;y++)
        for(z=1;z<=n;z++)
            if(A[x][y]==1 && A[y][z]==1 && A[z][x]==1)
                cout<<x<<" "<<y<<" "<<z<<endl;
}
*/
/*
int A[101][101],n,m,p,q,viz[101],nr;
void citire()
{ int x,y,i;
  cin>>n>>p>>m;
  for(i=1;i<=m;i++)
    {cin>>x>>y;
     A[x][y]=1;
    }
}

int BFS(int x)
{int p,u,v,i, C[101];
 C[1]=x;
 p=u=1;
 viz[x]=1;
 while(p<=u)
    {v=C[p];
     p++;
     for(i=1;i<=n;i++)
        if(A[v][i]==1 && viz[i]==0)
            {u++;
             C[u]=i;
             viz[i]=viz[v]+1;
             if(viz[i]%2==1) nr++;
            }
    }
}


int main()
{int i;
 citire();
 BFS(p);
 cout<<nr<<endl;
 for(i=1;i<=n;i++)
    if(i!=p && viz[i]%2==1)
        cout<<i<<" ";
}
*/

int A[50001][50001],n,m,di[50001];
void citire()
{ int x,y;
  fin>>n>>m;
  for(i=1;i<=m;i++)
    { fin>>x>>y;
      A[x][y]=1;
      di[y]++;
    }
}

int main()
{ int
  citire();
  for(i=1;i<=n;i++)
    { for(j=1;j<=n;j++)
      if(di[j]==0)
        { fout<<j<<" ";
          di[j]=-1;
          for(k=1;k<=n;k++)
            if(A[j][k])
                di[k]--;
          break;
        }
    }
}