Pagini recente » Cod sursa (job #513551) | Cod sursa (job #444371) | Cod sursa (job #643810) | Cod sursa (job #2748012) | Cod sursa (job #332404)
Cod sursa(job #332404)
# include <algorithm>
using namespace std;
# define DIM 100001
struct sub {
int nod;
sub *urm;
};
int n, m, sum[ DIM ];
sub *lst[ DIM ];
int query ( int s ) {
int i;
for ( i = n; i > 0; -- i )
if ( sum[ i ] == s )
return i;
return -1;
}
void add ( int x, int y ) {
sub *p = new sub;
p->nod = y;
p->urm = lst[ x ];
lst[ x ] = p;
}
void update ( int nod, int s ) {
sub *p;
sum[ nod ] += s;
for ( p = lst[ nod ]; p; p = p->urm )
update ( p->nod, s );
}
void read () {
int i, p, q, s, tip;
scanf ( "%d%d", &n, &m );
for ( i = 1; i < n; ++ i ) {
scanf ( "%d%d", &p, &q );
add ( p, q );
}
for ( i = 0; i < m; ++ i ) {
scanf ( "%d", &tip );
if ( tip == 1 ) {
scanf ( "%d%d", &p, &s );
update ( p, s );
}
else {
scanf ( "%d", &s );
printf ( "%d\n", query ( s ) );
}
}
}
int main () {
freopen ( "arbore.in", "r", stdin );
freopen ( "arbore.out", "w", stdout );
read ();
return 0;
}