Cod sursa(job #1308710)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 4 ianuarie 2015 16:20:48
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int e[1005],c[1005];
vector<int> d;
int main() {
	int n,s,ss=0,m=-1;
	in>>n>>s;
	for(int i=1;i<=n;i++){ in>>e[i]>>c[i];ss+=e[i];m=max(m,e[i]); }
	d=vector<int>(m+1);
	if(s>ss){ out<<-1;return 0; }
	int sol=numeric_limits<int>::max();
	for(int i=1;i<=n;i++)
	for(int j=m-e[i];j>=0;j--)
	if(j+e[i]<s){
		if(d[j+e[i]]<d[j]+c[i])
			d[j+e[i]]=d[j]+c[i];
	}
	else sol=min(sol,d[j]+c[i]);
	out<<sol;
	return 0;
}