Cod sursa(job #1874262)

Utilizator wilson182Alexandrina Panfil wilson182 Data 9 februarie 2017 20:37:04
Problema Energii Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<bits/stdc++.h>
#define N 5050
using namespace std;
int e[1020], g, dp[N], c[1020], i, w, j, s=0;
int main(){
	ifstream fin("energii.in");
	ofstream fout("energii.out");
	fin>>g>>w;
	for(i=1;i<=g;i++) {
		fin>>e[i]>>c[i];
		s+=c[i];
	}
	if(w>s){
		fout<<-1;
		return 0;
	}
	for(i=0;i<=w;i++) dp[i]=999999;
	for(i=1;i<=g;i++)
		for(j=w; j>=1;j--){
            if (e[i]<j) dp[j]=min(dp[j-e[i]]+c[i], dp[j]);
            else dp[j] = min(dp[j], c[i]);
        }
	fout<<dp[w];
	return 0;
}