Pagini recente » Cod sursa (job #2106725) | Cod sursa (job #1601547) | Cod sursa (job #1336663) | Cod sursa (job #1205129) | Cod sursa (job #72088)
Cod sursa(job #72088)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n,m,w[300000],a,c,q,h,e[2];
char s[5000000],*p;
void rezolvare(int &e, int &q)
{
int o=0;
while (q!=c-1 && w[e]!=0)
{
if (q+1==c-1 || w[w[e]]==0)
{
printf("%d\n",w[w[e]]);
o=1;
break;
}
if (q+2==c-1 || w[w[w[e]]]==0)
{
printf("%d\n",w[w[w[e]]]);
o=1;
break;
}
q+=3;
e=w[w[w[e]]];
}
if (o==0)
printf("%d\n",w[e]);
}
void citire()
{
freopen("stramosi.in","r",stdin);
scanf("%d%d", &n, &m);
long i;
//for (long i=1; i<=n; i++)
// scanf("%d", &w[i]);
fgets(s,5000000,stdin);
if (s[strlen(s-1)]=='\n')
s[strlen(s-1)]=0;
s[strlen(s)]='.';
i=-1;
for (p=strtok(s," .\n"); p; p=strtok(NULL," .\n"))
w[++i]=atol(p);
//for (long i=1; i<=m; i++)
while (!feof(stdin)){
fgets(s,5000000,stdin);
if (s[strlen(s-1)]=='\n')
s[strlen(s-1)]=0;
s[strlen(s)]='.';
i=-1;
for(p=strtok(s," .\n"); p; p=strtok(NULL," .\n"))
{
//scanf("%d%d", &a, &c);
e[++i]=atol(p);
h=0;
if (i==1)
{
a=e[0];
c=e[1];
rezolvare(a,h);
}
}
}
fclose(stdin);
}
int main()
{
freopen("stramosi.out","w",stdout);
citire();
fclose(stdout);
return 0;
}