Cod sursa(job #3969)

Utilizator cosminstefanxpStefan Dobrin Cosmin cosminstefanxp Data 29 decembrie 2006 20:42:48
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream.h>
#include<values.h>
int gt[1005]={-1},ct[1005]={0},g[1005],c[1005],i,j,n,w,min,max,maxt;
int main()
{

	ifstream f("energii.in");
	ofstream fout("energii.out");
	f>>n;
	f>>w;
   maxt=w;
	for(i=1;i<=n;i++)
		{f>>g[i]; f>>c[i];}
	max=0;
	for(i=1;i<=n;i++)
		 {for(j=max;j>=0;j--)
			  if(gt[j]!=0&&(ct[j+g[i]]>ct[j]+c[i]||ct[j+g[i]]==0))
					{gt[j+g[i]]=1;
					 ct[j+g[i]]=ct[j]+c[i];
					 if(j+g[i]>max) max=j+g[i];}
		  if(max>w) {if(maxt<max) max=maxt;
						 max=w;}
		  }
	 min=MAXINT;
	 for(i=w;i<=maxt;i++)
		  if(min>ct[i]&&ct[i]!=0) min=ct[i];
	 fout<<min;
	 f.close();
	 fout.close();
   return 0;
	 }