Cod sursa(job #412961)

Utilizator ClasianMunteanu Petre Clasian Data 7 martie 2010 10:14:23
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream.h>
ifstream f("energii.in");
ofstream h("energii.out");
int n,i,e[1001],c[1001],max,j;
int s,g,cst[100000];
int main()
{ f>>n>>g;
  for(i=1;i<=n;i++) { f>>e[i]>>c[i];
					  s+=e[i];
				    }
 if(g>s)h<<-1;
 else { max=0;cst[0]=1;
        for(i=1;i<=n;i++)
			for(j=max;j>=0;j--)if(cst[j] && (!cst[j+e[i]] || cst[j+e[i]]>cst[j]+c[i] )) { cst[j+e[i]]=cst[j]+c[i];
																						  if(j+e[i]>max)max=j+e[i];
																						}
		i=g;
		while(!cst[i])i++;n=cst[i++];
		for(;i<=max;i++)if(cst[i]&&n>cst[i])n=cst[i];
		h<<n-1;
	 }
  f.close();
  h.close();
  return 0;
}