Cod sursa(job #2203479)

Utilizator catalinmatei13Stan Catalin catalinmatei13 Data 12 mai 2018 14:12:43
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#define MAX 2000000
#define MAXD 10001
using namespace std;


int main(){
	int g, w, e[1001], c[1001], i,d[1000000],j;
	freopen("energii.in" , "r" , stdin);
	freopen("energii.out" , "w" , stdout);
	cin>>g>>w;
	for(i=1 ; i<=g ; i++){
		cin>>e[i]>>c[i];
	}
	for (i = 1; i < MAXD; i++) {
		d[i] = MAX;
	}

	for(i=1 ; i<=g ; i++){
		for(j=w; j>=1; j--){
			if(d[j]!=MAX){
				if(d[j+e[i]]>d[j]+c[i]){
					d[j+e[i]] = d[j]+c[i];
				}
			}
		}
		if (d[e[i]] > c[i]) {
			d[e[i]] = c[i];
		}
	}

	int min = MAX;
	for (i = w; i < 1000000; i++) {
		if (min > d[i])
			min = d[i];
	}
	if (min == MAX) {
		cout << -1;
	} else {
		cout << min;
	}
	return 0;
}