Cod sursa(job #852561)

Utilizator stoicatheoFlirk Navok stoicatheo Data 11 ianuarie 2013 13:53:54
Problema Pioni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
#include<vector>
 
using namespace std;
 
const char iname[]="pioni.in";
const char oname[]="pioni.out";
const int maxn=30005;
 
ifstream f(iname);
ofstream g(oname);
 
int l[maxn],i,n,x,y,k,v[maxn],m,gr[maxn],rez;
vector<int> E[maxn];
 
void bfs(int x)
{
    if(v[x]>=0)
        return;
    for(vector<int>::iterator it=E[x].begin();it!=E[x].end();++it)
    {
        bfs(*it);
        if(v[*it]==0)
            v[x]=*it;
    }
    if(v[x]<0)
        v[x]=0;
}
 
int main()
{
    f>>k>>n>>m;
    for(i=1;i<=m;++i)
        f>>x>>y,E[x].push_back(y),++gr[y];
 
    for(i=1;i<=n;++i)
        v[i]=-1;
    for(i=1;i<=n;++i)
        if(gr[i]==0)
            bfs(i);
    for(;k;--k)
    {
        f>>m;
        rez=0;
        for(i=1;i<=m;++i)
        {
            f>>gr[i];
            if(v[gr[i]])
                ++rez;
        }
        if(rez==0)
        {
            g<<"Fumeanu\n";
            continue;
        }
        g<<"Nargy\n"<<rez<<" ";
        for(i=1;i<=m;++i)
            if(v[gr[i]])
                g<<gr[i]<<" "<<v[gr[i]]<<" ";
        g<<"\n";
    }
}