Cod sursa(job #633734)

Utilizator danieladDianu Daniela danielad Data 14 noiembrie 2011 17:54:20
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,a[100][100],s[100],nr;
void citire(int &n,int a[100][100]){
  f>>n>>m;
  for(int i=1;i<=n;i++)
  for(int j=1;j<=n;j++)
  a[i][j]=0;
  for(int i=1;i<=m;i++){
    int x,y;
    f>>x>>y;
    a[x][y]=1;
  }
}
void sort(){
  int sum;
  nr=0;
  for(int j=1;j<=n;j++){
    sum=0;
    for(int i=1;i<=n;i++)
    sum=sum+a[i][j];
    if(sum==0){
      nr++;
      s[nr]=j;
    }
  }
  int i=1;
  while(i<=nr){
    for(int j=1;j<=n;j++)
    if(a[s[i]][j]==1){
      nr++;
      s[nr]=j;
      a[s[i]][j]=0;
    }
    i++;
  }
}


int main()
{citire(n,a);
sort();
for(int i=1;i<=nr;i++)
g<<s[i]<<" ";
f.close();
g.close();
return 0;
}