Cod sursa(job #1219174)

Utilizator misinoonisim necula misino Data 13 august 2014 16:49:50
Problema Pioni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
#include<vector>

#define N 20010

using namespace std;

ifstream f("pioni.in");
ofstream g("pioni.out");

int t,n,m,y,i,in[N],ext[N],nr,x,viz[N],castig[N],muta[N];

vector<int>sol,v[N];

inline void dfs(int x){
    viz[x] = 1;

    if(!v[x].size())
    {
        return;
    }

    for(vector<int>::iterator it = v[x].begin(); it != v[x].end(); ++it)
    {
        if(!viz[*it])
            dfs(*it);

        if(!castig[*it])
        {
            castig[x] = 1;
            muta[x] = *it;
        }
    }
}

int main()
{
    f >> t >> n >> m;

    for(i = 1; i <= m; ++i)
    {
        f >> x >> y;

        v[x].push_back(y);

        ++in[y];
        ++ext[x];
    }

    for(i = 1; i <= n; ++i)
        if(!in[i])
            dfs(i);

    for(; t; --t)
    {
        f >> nr ;

        sol.clear();

        for(i = 1; i <= nr; ++i)
        {
            f >> x;

            if(castig[x])
                sol.push_back(x);
        }

        if(!sol.size())
            g << "Fumeanu\n";
        else
        {
            g << "Nargy\n" << sol.size() << ' ';

            for(vector<int>::iterator it = sol.begin(); it != sol.end(); ++it)
                g << *it << ' ' << muta[*it] << ' ';

            g << '\n';
        }
    }

    return 0;
}