Pagini recente » Cod sursa (job #458766) | Cod sursa (job #1858490) | Profil StarGold2 | Cod sursa (job #2461498) | Cod sursa (job #332365)
Cod sursa(job #332365)
#include<stdio.h>
#define DIM 100001
struct nod
{
int x;
nod *urm;
};
nod *lst[DIM];
int b[DIM],q2[DIM*10];
void add (int a,int b)
{
nod *p=new nod;
p->x=b;
p->urm=lst[a];
lst[a]=p;
}
void query1 (int a,int s)
{
int i;
nod *p;
b[a]+=s;
s=0;
for(i=a;i>0;)
{
p=lst[i];
s+=b[i];
i=p->x;
}
q2[s]=a;
}
int main ()
{
freopen("arbore.in","r",stdin);
freopen("arbore.out","w",stdout);
int n,m,i,a,s,q,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<n;++i)
{
scanf("%d%d",&x,&y);
if(x>y)
add(x,y);
else
add(y,x);
}
for(i=1;i<=m;++i)
{
scanf("%d",&q);
if(q==1)
{
scanf("%d%d",&a,&s);
query1(a,s);
}
else
{
scanf("%d",&s);
if(q2[s]==0)
printf("-1\n");
else
printf("%d\n",q2[s]);
}
}
return 0;
}