Cod sursa(job #2475132)

Utilizator ialexia_ioanaAlexia Ichim ialexia_ioana Data 16 octombrie 2019 12:05:01
Problema Sortare topologica Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <cstdio>
#include <vector>

using namespace std;
const int NMAX=10005;
bool viz[2][NMAX];
bool g[2][NMAX][NMAX];
int deg[NMAX];
//int top[NMAX];
int n, m;
void sortare_topologica()
{
    int t=0;
    for(int j=1; j<=n; j++)
    {
        for(int i=1; i<=n; i++)
        {
            if (viz[0][i]==0 && deg[i]==0)
            {
                viz[0][i]=1;
                t++;
                //top[t]=i;
                printf("%d ", i);
                for(int k=1; k<=n; k++)
                {
                    if (g[0][i][k]==1)
                        deg[k]--;
                }
                break;
            }
        }
    }
}

int main()
{
    freopen("sortaret.in", "r", stdin);
    freopen("sortaret.out", "w", stdout);
    int u, v, cc, i, j, k;
    scanf("%d%d", &n, &m);
    for(i=1; i<=m; i++)
    {
        scanf("%d%d", &u, &v);
        g[0][u][v]=1;
        deg[v]++;
        g[1][v][u]=1;
    }
    //cc=CTC();
    //RESET();
    sortare_topologica();
    return 0;
}