Cod sursa(job #705448)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 4 martie 2012 12:58:59
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<iostream>
#include<fstream>
using namespace std;
int e[1001],c[1001],cmin[2][5001];
int minim(int a, int b)
{
	if(a<=b)
		return a;
	return b;
}
int main ()
{
	int n,i,s,l,emin;
	ifstream f("energii.in");
	ofstream g("energii.out");
	f>>n>>emin;
	for(i=1;i<=n;i++) 
		f>>e[i]>>c[i];
	f.close();
	for(i=0;i<=emin;i++) {
		cmin[0][i]=2000000000;
		cmin[1][i]=2000000000;
	}
	l=1;
	for(i=1;i<=n;i++,l=1-l)
		for(s=1;s<=emin;s++) 
			if(s<=e[i])
				cmin[l][s]=minim(cmin[1-l][s],c[i]);
			else cmin[l][s]=minim(cmin[1-l][s],cmin[1-l][s-e[i]]+c[i]);
	if(cmin[1-l][emin]==2000000000)
		g<<"-1";
	else g<<cmin[1-l][emin];
	g.close();
	return 0;
}