Cod sursa(job #1611200)

Utilizator Athena99Anghel Anca Athena99 Data 23 februarie 2016 23:19:18
Problema Pioni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("pioni.in");
ofstream fout("pioni.out");

const int nmax= 20000;

bool u[nmax+1];
int w[nmax+1];

vector <int> g[nmax+1];

void dfs( int x ) {
    u[x]= 1;
    for ( vector <int>::iterator it= g[x].begin(); it!=g[x].end(); ++it ) {
        if ( u[*it]==0 ) {
            dfs(*it);
        }

        if ( w[*it]==0 ) {
            w[x]= *it;
        }
    }
}

int main(  ) {
    int t, n, m;
    fin>>t>>n>>m;
    for ( int i= 1; i<=m; ++i ) {
        int x, y;
        fin>>x>>y;

        g[x].push_back(y);
    }

    for ( int i= 1; i<=n; ++i ) {
        if ( u[i]==0 ) {
            dfs(i);
        }
    }

    for ( int cnt= 1; cnt<=t; ++cnt ) {
        int k;
        vector <int> ans;
        fin>>k;
        for ( int i= 1; i<=k; ++i ) {
            int x;
            fin>>x;

            if ( w[x]!=0 ) {
                ans.push_back(x);
            }
        }

        if ( (int)ans.size()>0 ) {
            fout<<"Nargy\n";
            for ( int i= 0; i<(int)ans.size(); ++i ) {
                fout<<ans[i]<<" "<<w[ans[i]]<<" ";
            }
            fout<<"\n";
        } else {
            fout<<"Fumeanu\n";
        }
    }

    return 0;
}