Pagini recente » Cod sursa (job #1336460) | Cod sursa (job #1263514) | Rating hgfhfgdfhf (pula10) | Cod sursa (job #805871) | Cod sursa (job #2040277)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("arbore.in");
ofstream out("arbore.out");
const int N=100001;
vector <int>a[N];
int n,m,d[N];
bool viz[N];
void citire()
{
int x,y,i;
in>>n>>m;
for(i=1; i<=n-1; i++)
{
in>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
}
void dfs(int nod)
{
viz[nod]=1;
for(size_t i=0; i<a[nod].size(); i++)
if(viz[a[nod][i]]==0)
dfs(a[nod][i]);
}
int main()
{
int t,p,s,j,i;
citire();
for(i=1; i<=m; i++)
{
in>>t;
if(t==1)
{
in>>p>>s;
for(j=1; j<p; j++)
viz[j]=1;
dfs(p);
for(j=p; j<=n; j++)
if(viz[j]==1)
d[j]=d[j]+s;
}
if(t==2)
{
in>>s;
int ok=0;
for(j=1; j<=n; j++)
if(d[j]==s && ok==0)
{
out<<j<<'\n';
ok=1;
}
}
for(j=1; j<=n; j++)
viz[j]=0;
}
return 0;
}