Pagini recente » Cod sursa (job #2748220) | Cod sursa (job #530472) | Cod sursa (job #2375471) | Cod sursa (job #1652908) | Cod sursa (job #10810)
Cod sursa(job #10810)
#include<stdio.h>
int a[1002],b[1002],c[1002];
int main()
{
long int s,s1,s2,min=-1;
int t,g,w,ok=1,i;
FILE *fin;
FILE *fout;
fin=fopen("energii.in","r");
fout=fopen("energii.out","w");
fscanf(fin,"%d %d",&g,&w);
s=0;
for(i=1;i<=g;i++)
{ fscanf(fin,"%d %d",&a[i],&b[i]); s+=a[i];}
fclose(fin);
if(s<w) fprintf(fout,"%d",-1);
else
{
while(ok)
{ s1=s2=0;
c[g]++;
for(i=g;i>=2;i--)
{
t=c[i];
if(c[i]>1)
{ c[i]=t%2;
c[i-1]+=t/2;}
}
ok=0;
for(i=g;i>=1;i--)
if(c[i]) {s1+=a[i]; s2+=b[i];}
else ok=1;
if(s1>=w)
if(min<0) min=s2;
else if(min>=s2) min=s2;
}
fprintf(fout,"%d",min);
}
fclose(fout);
return 0;
}