Pagini recente » Cod sursa (job #424077) | Cod sursa (job #1986784) | Cod sursa (job #1306564) | Cod sursa (job #2018650) | Cod sursa (job #2011814)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream si("pioni.in");
ofstream so("pioni.out");
vector<int>v[20005];
bitset<20005> cast;
bitset<20005> parc;
int demut[20005];
bool verif(int x)
{
if(parc[x])
return cast[x];
bool cas=false;
int n=v[x].size();
bool q;
for(int i=0;i<n;++i)
{
q=verif(v[x][i]);
cas=(cas||!q);
if(q==false)
demut[x]=v[x][i];
}
parc[x]=1;
cast[x]=cas;
return cas;
}
int mutat[20005];
int main()
{
int q;
si>>q;
int n,m;
si>>n>>m;
int i,a,b;
for(i=0;i<m;++i)
{
si>>a>>b;
v[a].push_back(b);
}
for(i=1;i<=n;++i)
{
verif(i);
}
int x;
while(q--)
{
si>>x;
b=0;
for(i=0;i<x;++i)
{
si>>a;
if(cast[a])
{
++b;
mutat[a]++;
}
}
if(b)
{
so<<"Nargy\n"<<b<<' ';
for(i=1;i<=n;++i)
{
while(mutat[i]--)
{
so<<i<<' '<<demut[i]<<' ';
}
mutat[i]=0;
}
}
else
so<<"Fumeanu";
so<<'\n';
}
return 0;
}