Cod sursa(job #1648460)

Utilizator george.ursachiUrsachi George george.ursachi Data 11 martie 2016 10:17:30
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,v[50001],c[50001],u,p,x,y;
bool a[20001][20001];

void afisare()
{
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)
            g<<a[i][j]<<' ';
            g<<'\n';
        }
    g<<'\n';
}

void initial(){
    int i;
    for(i=1;i<=n;i++)if(v[i]==0){u++; c[u]=i;}
}

void sortare()
{
    int i;
    p=1;
    while(p<=u){
        x=c[p];
        for(i=1;i<=n;i++)
            if(a[x][i]){
                v[i]--;
                if(v[i]==0)
                c[++u]==i;
                g<<c[u]<<' ';
            }
       p++;
    }
}

int main()
{
    int i;
    f>>n>>m;
    for(i=1;i<=m;i++){
        f>>x>>y;
        a[x][y]=true;
        v[y]++;
    }
    afisare();
    initial();
    sortare();
    g<<'\n';
    for(i=1;i<=u;i++)g<<c[i]<<' ';
    return 0;
}