Pagini recente » Cod sursa (job #94232) | Cod sursa (job #90576)
Cod sursa(job #90576)
#include <stdio.h>
int v1[100005];
int v2[100005];
int v3[100005];
int v4[100005];
int n,m;
int main()
{
int i,j,x,y,tx=0;
FILE *in=fopen("arbore.in","r");
FILE *out=fopen("arbore.out","w");
fscanf(in,"%d%d",&n,&m);
for (i=1; i<n; i++)
{
fscanf(in,"%d%d",&x,&y);
v4[i]=y;
if (x!=tx)
{
v3[tx]=i;
v2[x]=i;
tx=x;
}
}
v3[tx]=i;
for (i=0; i<m; i++)
{
fscanf(in,"%d",&tx);
if (tx==1)
{
fscanf(in,"%d%d",&x,&y);
v1[x]+=y;
for (j=v2[x]; j<v3[x]; j++)
v1[v4[j]]+=y;
}
else
{
fscanf(in,"%d",&x);
j=1;
while (v1[j]!=x && j<=n )
j++;
if (j<=n)
fprintf(out,"%d\n",j);
else
fprintf(out,"-1\n");
}
}
fclose(in);
fclose(out);
return 0;
}