Cod sursa(job #679173)

Utilizator robertgbrrobertgbr robertgbr Data 12 februarie 2012 20:38:40
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<iostream>
#include<fstream>
using namespace std;
# define WMAX 10001
ifstream f("energii.in");
ofstream g("energii.out");
int G,W,D[2][WMAX],i,cw,E[WMAX],C[WMAX],l=0;
int main(){
	f>>G>>W;
	for(i=1;i<=G;i++){
		f>>E[i]>>C[i];
	}
	for(i=1;i<=G;i++,l=1-l){
		for(cw=0;cw<=W;cw++){
			D[l][cw]=D[1-l][cw];
			if(E[i]<=cw && D[l][cw]<D[1-l][cw-E[i]]+C[i]){
				D[l][cw]=D[1-l][cw-E[i]]+C[i];
			}
		}
	}
	if(D[1-l][W]<W){
		g<<"-1"<<'\n';
	}
	else{g<<D[1-l][W];
	}
f.close();
g.close();
return 0;
}