Cod sursa(job #2125004)

Utilizator prisacalexandruPrisac Alexandru prisacalexandru Data 7 februarie 2018 20:06:57
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<bits/stdc++.h>

using namespace std;

int g,w,s,mmax=20000;
int e[1100],c[1100],d[1100][5100];


int main(){
	ifstream cin("energii.in");
	ofstream cout("energii.out");
	cin>>g>>w;
	for(int i=1;i<=g;i++){
		cin>>e[i]>>c[i];
		s+=e[i];
	}
	for(int i=1;i<=g;++i)
		d[i][0]=mmax;
	for(int j=1;j<=w;j++)
		d[0][j]=mmax;
	for(int i=1;i<=g;++i)
		for(int j=0;j<=w;j++){
			d[i][j]=d[i-1][j];
			if(e[i]>=j) 
			 d[i][j]=min(d[i-1][j],d[i-1][j-e[i]]+c[i]);	
		}
	//for(int i=0;i<=g;++i){
	//for(int j=0;j<=w;j++)
	//		cout<<d[i][j]<<" ";
	//	cout<<'\n';
	}
	if(s>=w) cout<<d[g][w]; else cout<<"-1";
	return 0;
}