Cod sursa(job #1363664)

Utilizator Edward2012Eduard Ursinschi Edward2012 Data 27 februarie 2015 09:42:55
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,x,y,i,j,p;
vector <int> v[50001];
int S[50001],c[50001],L[50001],K,Q[50001];
int main()
{f>>n>>m;
 for(i=1;i<=m;i++){/*f>>x>>y;
                   A[x][0]=A[x][0]+1;
                   p=A[x][0];
                   A[x][p]=y;*/
                   v[x].push_back(y);
                   Q[x]++;
                  S[y]++;}
for(i=1;i<=n;i++) c[i]=1;
/* for(i=1;i<=n;i++)
 {for(j=1;j<=n;j++)
     g<<A[i][j]<<' ';
 g<<'\n';}
*/
//for(i=1;i<=n;i++) g<<S[i]<<' ';
K=0;
while(K<n)
{for(i=1;i<=n;i++)
   if(S[i]==0&&c[i]==1) {K++;L[K]=i;
                         for(int p=0;p<Q[i];p++)
                              S[v[i][p]]--;

                         c[i]=0;}
}

for(i=1;i<=n;i++) g<<L[i]<<' ';
return 0;
}