Pagini recente » Cod sursa (job #2326401) | Cod sursa (job #1861498) | Cod sursa (job #1362315) | Cod sursa (job #1877316) | Cod sursa (job #2000777)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fi ("pioni.in");
ofstream fo ("pioni.out");
struct pion{int nod,lungime;};
vector <int> v[20005];
queue <pion> q;
int lg[20005],sol[20005],a[30005];
int t,nrnod,nrmuchii,i,rez,nr;
void citire()
{
fi>>t>>nrnod>>nrmuchii;
for (i=1;i<=nrmuchii;i++)
{
int nod1,nod2;
fi>>nod1>>nod2;
v[nod2].push_back(nod1);
lg[nod1]=lg[nod2]+1;
}
}
void preprocesare()
{
int nod1,nod2;
pion el,el2;
for (i=1;i<=nrnod;i++)
if (lg[i]==0)
{
el.nod=i;
el.lungime=0;
q.push(el);
}
while (!q.empty())
{
el=q.front();
q.pop();
nod1=el.nod;
for (i=0;i<v[nod1].size();i++)
{
nod2=v[nod1][i];
el2.nod=nod2;
el2.lungime=el.lungime+1;
if (el.lungime%2==0 and sol[nod2]==0) sol[nod2]=nod1;
q.push(el2);
}
}
}
int main()
{
citire();
preprocesare();
while (t)
{
t--;
rez=0;
fi>>nr;
for (i=1;i<=nr;i++)
{
fi>>a[i];
if (sol[a[i]]!=0) rez++;
}
if (rez>0)
{
fo<<"Nargy"<<'\n';
fo<<rez;
for (i=1;i<=nr;i++) if (sol[a[i]]>0) fo<<' '<<a[i]<<' '<<sol[a[i]];
fo<<'\n';
}
else fo<<"Fumeanu"<<'\n';
}
return 0;
}