Pagini recente » Cod sursa (job #3130109) | Cod sursa (job #1816601) | Cod sursa (job #525567) | Cod sursa (job #2361093) | Cod sursa (job #214641)
Cod sursa(job #214641)
#include<fstream>
using namespace std;
int t,n,m;
struct nod{
int vec;
nod* urm;
};
int nnnn;
nod* LA[20001];
bool PozCastig[20001];
int pioni[30001];
int poz[20001];
void push(int a, int b){
nod*p=new nod;
p->vec=b;
if(LA[a]) p->urm=LA[a];
else p->urm=0;
LA[a]=p;
}
void df(int x){
nod* q;
q=LA[x];
while(q){
if(PozCastig[q->vec]){
PozCastig[x]=0;
poz[x]=q->vec;
return ;
}
df(q->vec);
q=q->urm;
}
PozCastig[x]=1;
}
int main(){
int i;
int a,b;
int are;
int pion;
ifstream f("pioni.in");
ofstream g("pioni.out");
f>>t>>n>>m;
for(i=0;i<m;i++){
f>>a>>b;
push(a,b);
}
for(nnnn=1;nnnn<=n;nnnn++)
df(nnnn);
while(t--){
int nr;
are=0;
f>>nr;
for(i=0;i<nr;i++){
f>>pioni[i];
if(PozCastig[pioni[i]]==0)
are++;
}
if(are){
g<<"Nargy\n"<<are<<' ';
for(i=0;i<nr;i++){
if(PozCastig[pioni[i]]==0){
g<<pioni[i]<<' '<<poz[pioni[i]]<<' ';
}
}
g<<'\n';
}
else g<<"Fumeanu\n";
}
f.close();
g.close();
return 0;
}