Cod sursa(job #1600978)

Utilizator alexmisto342Turdean Alexandru alexmisto342 Data 15 februarie 2016 16:54:25
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <iostream>
#include <queue>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int i,j,n,m,a,b,k,x,lx,ly,c,mini,g[50001];
vector<int> v[50001];
queue <int> q;
int ok(int a)
{
    int x = 0;
    while(a)
    {
        x+=a%10;
        a /= 10;

    }
    if(x%2)
        return 0;
    return 1;
}
int main()
{
    fin>>n>>m;
    for(i = 1; i <= n; i++)
    {
        fin>>a>>b;
        v[a].push_back(b);
        g[b]++;
    }
    for(i = 1; i <= n; i++)
        if(!g[i])
            q.push(i);
    while(q.size())
    {
        fout<<q.front()<<" ";
        for(i = 0; i < v[q.front()].size(); i++)
        {
            g[v[q.front()][i]]--;
            if(g[v[q.front()][i]] == 0)
                q.push(v[q.front()][i]);
        }
        q.pop();
    }
    return 0;
}