Pagini recente » Cod sursa (job #974984) | Cod sursa (job #1177083) | Cod sursa (job #781310) | Cod sursa (job #712205) | Cod sursa (job #190618)
Cod sursa(job #190618)
#include<stdio.h>
int n,m,v[250010],p,q;
char c[1750010],k[100];
void citire()
{
fgets(c,1750010,stdin);
int i,aux=0,n1=0,aux1,aux2;
for(i=0; c[i]!='\0'; i++)
{
if(c[i]>='0')
{
aux1=aux<<3;
aux2=aux<<1;
aux=aux1+aux2+c[i]-'0';
}
else
{
v[++n1]=aux;
aux=0;
}
}
}
void citeste()
{
fgets(c,100,stdin);
p=q=0;
int i,j,q1,q2;
for(i=0; c[i]>='0'; i++)
{
q1=q<<3;
q2=q<<1;
q=q1+q2;
q+=c[i]-'0';
}
for(j=i+1; c[j]>='0'; j++)
p=p*10+c[j]-'0';
}
void scrie()
{
if(q==0)
{
printf("0\n");
return;
}
int y=0,i;
while(q)
{
k[++y]=q%10+'0';
q/=10;
}
for(i=y; i; i--)
printf("%c",k[i]);
printf("\n");
}
void dfs()
{
if((!p)||(!q))
{
//printf("%d\n",q);
scrie();
return;
}
q=v[q];
p--;
dfs();
}
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d\n",&n,&m);
citire();
int i;
for(i=0; i!=m; i++)
{
citeste();
dfs();
}
return 0;
}