Cod sursa(job #2310275)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 30 decembrie 2018 22:06:56
Problema Pioni Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <bits/stdc++.h>
#define N 20005

using namespace std ;

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

vector<int> graf[N] ;
int dp[N] , n , k , tt[N] ;
bitset<N> bt ;
vector<int> sol;

void citire()
{
    int m , x , y , i ;
    fin >> k >> n >> m ;
    for ( i = 1 ; i <= m ; i++ )
    {
        fin >> x >> y ;
        graf[x].push_back(y) ;
    }
}

void dfs(int nod)
{
    bt[nod] = 1 ;
    for ( auto vec : graf[nod] )
    {
        if ( bt[vec] == 0 )
            dfs(vec) ;
        if ( dp[vec] == 0 )
        {
            dp[nod] = 1 ;
            tt[nod] = vec ;
        }
    }
}

int main()
{
    int i , x , y ,j;
    citire() ;
    for ( i = 1 ; i <= n ; i++ )
        if ( bt[i] == 0 )
            dfs(i) ;
    for ( i = 1 ; i <= k ; i++ )
    {
        fin >> x ;
        sol.clear() ;
        for ( j = 1 ; j <= x ; j++ )
        {
            fin >> y ;
            if ( dp[y] )
                sol.push_back(y) ;
        }
        if ( sol.size() == 0 )
            fout << "Fumeanu" << '\n' ;
        else
        {
            fout << "Nargy" << '\n' ;
            fout << sol.size() << " " ;
            for ( auto vec : sol )
                fout << vec << " " << tt[vec] << " " ;
            fout << '\n' ;
        }
    }
}