Cod sursa(job #2125070)

Utilizator prisacalexandruPrisac Alexandru prisacalexandru Data 7 februarie 2018 22:07:28
Problema Energii Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<bits/stdc++.h>

using namespace std;

int g,w,ss;
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];
	}
	for(int j=0;j<=w;j++)
		d[0][j]=20000;
	for(int i=1;i<=g;i++){
		ss+=e[i];
		for(int j=0,k=ss+1;j<=ss;j++,k++){
			 
			d[i][k]=20000;
			if(j>e[i]) d[i][j]=min(d[i-1][j],d[i-1][j-e[i]]+c[i]);
			else d[i][j]=min(d[i-1][j],c[i]);	
		}
	}
	//for(int i=1;i<=g;i++){
	//for(int j=1;j<=w;j++)
	//		cout<<d[i][j]<<" ";
	//	cout<<'\n';
	//}
	if(ss>=w) cout<<d[g][w]; else cout<<"-1";
	return 0;
}