Pagini recente » Cod sursa (job #1862318) | Cod sursa (job #2351733) | Cod sursa (job #922716) | Cod sursa (job #1701698) | Cod sursa (job #51290)
Cod sursa(job #51290)
#include<stdio.h>
int main()
{long v[30],p,s=1,ymin=0,sy=0,min=0;
long x[100],y[100],u[30],n,k,i,w;
FILE *f=fopen("energii.in","r");
FILE*g=fopen("energii.out","w");
k=1; s=0;
fscanf(f,"%ld %ld",&n,&w);
for (i=1;i<=n;i++) {u[i]=0; fscanf(f,"%ld %ld",&x[i],&y[i]);s+=x[i];ymin+=y[i];}
if(s>w){
for(i=n;i>=n-k+1;i--) {u[i]=1;s*=v[i];}
int ok=1,poz=1,r;
poz=n-k+1;r=2;
while (ok==1&&k<=n)
{
s=0; sy=0;
for (i=2;i<=n;i++)
if (i==poz) {u[poz-1]=1;u[poz]=0; poz--;break;}
if (u[r-1]==1) {poz=n-k+r;r++;}
for (i=1;i<=n;i++) if (u[i]==1){sy+=y[i];s+=x[i]; }
if(s>=w&&s<min) {min=s;ymin=sy;}
k++;
}
fprintf(g,"%ld",ymin);}
else if(s==w) fprintf(g,"%ld",ymin);
else fprintf(g,"-1");
return 0;}