Pagini recente » Cod sursa (job #1930191) | Cod sursa (job #572031) | Cod sursa (job #1146138) | Cod sursa (job #686869) | Cod sursa (job #1882998)
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
vector <int> v[100001];
int sume[100001];
void dfs(int nod,int suma){
int i;
sume[nod]+=suma;
//printf("%d\n" ,v[nod].size());
for(i=0;(unsigned int)i<v[nod].size();i++)
dfs(v[nod][i],suma);
}
int main(){
FILE*fin,*fout;
int n,i,m,a,b,x,suma,nod,flag,j;
fin = fopen("arbore.in" ,"r");
fout = fopen("arbore.out" ,"w");
fscanf(fin, "%d%d" ,&n,&m);
for(i=0;i<n-1;i++){
fscanf(fin, "%d%d" ,&a,&b);
if(a<b)
v[a].push_back(b);
else
v[b].push_back(a);
}
for(i=0;i<m;i++){
fscanf(fin, "%d" ,&x);
if(x==1){
fscanf(fin, "%d%d" ,&nod,&suma);
dfs(nod,suma);
}
else{
fscanf(fin, "%d" ,&suma);
flag=0;
j=1;
while(flag==0 && j<=n){
if(sume[j]==suma){
flag=1;
fprintf(fout, "%d\n" ,j);
}
j++;
}
}
}
fclose(fin);
fclose(fout);
return 0;
}