Cod sursa(job #51290)

Utilizator FlorianFlorian Marcu Florian Data 10 aprilie 2007 20:28:55
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#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;}