Pagini recente » Cod sursa (job #1097787) | Cod sursa (job #879952) | Cod sursa (job #3123571) | Rating Teofil (teofil) | Cod sursa (job #36882)
Cod sursa(job #36882)
#include<stdio.h>
#include<stdlib.h>
#define Nmax 100002
long t[Nmax];
char viz[Nmax];
int S,Sc[Nmax];
int main()
{
long n,i,pr=1,ul=0,elem,c[Nmax],nrcomp=0;
freopen("mese.in","r",stdin);
freopen("mese.out","w",stdout);
scanf("%ld%d",&n,&S);
for(i=1;i<=n;i++)
{
scanf("%ld%d",&t[i],&Sc[i]);
viz[ t[i] ] ='0';
}
for(i=1;i<=n;i++)
if( viz[i] != '0' )
{
viz[i]='1';
c[++ul]=i;
}
Sc[0]=300;
while( pr <= ul )
{
elem=c[pr++];
if( Sc[elem] + Sc[ t[elem] ] <= S )
Sc[ t[elem] ] += Sc[elem];
else nrcomp ++;
if( t[elem] && viz[ t[elem] ] == '0' )
{
viz[ t[elem] ] ='1';
c[++ul]=t[elem];
}
}
printf("%ld\n",nrcomp);
return 0;
}