Cod sursa(job #474855)

Utilizator freak93Adrian Budau freak93 Data 5 august 2010 12:15:58
Problema Pioni Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<fstream>
#include<vector>

using namespace std;

const char iname[]="pioni.in";
const char oname[]="pioni.out";
const int maxn=20005;

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";
    }
}