Cod sursa(job #922556)

Utilizator teoionescuIonescu Teodor teoionescu Data 22 martie 2013 14:22:00
Problema Energii Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>
#define Q 5001
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int i,j,n,w,e,c,v[Q],l,r=1<<30;
int main(){
	in>>n>>w;
	for(i=1;i<=n;i++){
		in>>e>>c;
		for(j=l;j>0;j--) if(v[j]>0 && (v[j+e]>=v[j]+c || v[j+e]==0)){
			if(j+e>=w){
				if(v[j]+c<r) r=v[j]+c;
			}
			else{
				v[j+e]=v[j]+c;
				if(j+e>l) l=j+e;
			}
		}
		if(v[e]>=c  || v[e]==0){
			if(e>=w){
				if(c<r) r=c;
			}
			else{
				v[e]=c;
				if(e>l) l=e;
			}
		}
	}
	out<<r;
	return 0;
}