Pagini recente » Cod sursa (job #2416063) | Cod sursa (job #2442504) | Cod sursa (job #582511) | Cod sursa (job #2835555) | Cod sursa (job #65708)
Cod sursa(job #65708)
#include <stdio.h>
struct angajat
{
int sef;
int money;
int sub[10000];
};
angajat v[100000];
void give (int p, int s)
{
int i;
v[p].money+=s;
for (i=1; i<=v[p].sub[0]; i++)
{
give (v[p].sub[i],s);
}
}
int main()
{
int m,n,i,j,x,y,a,f;
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);
v[x].sub[++v[x].sub[0]]=y;
v[y].sef=x;
}
for (i=0; i<m; i++)
{
fscanf(in,"%d",&a);
if (a==1)
{
fscanf(in,"%d%d",&x,&y);
give(x,y);
}
if (a==2)
{
fscanf(in,"%d",&x);
f=0;
j=0;
while (f==0)
{
if (v[j].money==x)
f=1;
else
j++;
}
if (f)
fprintf(out,"%d\n",j);
}
}
fclose(in);
fclose(out);
return 0;
}