Cod sursa(job #2165376)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 13 martie 2018 12:00:50
Problema Pioni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("pioni.in");
ofstream g("pioni.out");
int t,n,m,x,y,k,S[1<<15];
bool viz[1<<15],win[1<<15];
vector <int> G[1<<15];
void dfs(int x)
{
    viz[x]=1;
    for(int i=0;i<(int)G[x].size();++i)
    {
        if(!viz[G[x][i]]) dfs(G[x][i]);
        if(!win[G[x][i]])
        {
            win[x]=1;
            S[x]=G[x][i];
        }
    }
}
int main()
{
    f>>t>>n>>m;
    while(m--)
    {
        f>>x>>y;
        G[x].push_back(y);
    }
    for(int i=1;i<=n;++i)
        if(!viz[i]) dfs(i);
    while(t--)
    {
        f>>k;
        vector <int> sol;
        for(int i=1;i<=k;++i)
        {
            f>>x;
            if(win[x]) sol.push_back(x);
        }
        if(!sol.size()) g<<"Fumeanu\n";
        else
        {
            g<<"Nargy\n"<<sol.size()<<' ';
            for(int i=0;i<(int)sol.size();++i)
                g<<sol[i]<<' '<<S[sol[i]]<<' ';
            g<<'\n';
        }
    }
    return 0;
}