Cod sursa(job #719238)

Utilizator robertpoeRobert Poenaru robertpoe Data 21 martie 2012 17:29:03
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
#define dim 7000
#include<algorithm>
#define FOR for(i=1;i<=n;i++)
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int i,e,c,n,m,nm=0;
int a[dim];
int main ()
{
	f>>m>>n;
	FOR
		a[i]=-1;
	while(m)
	{
		i=nm;
		f>>e>>c;
		for(i=nm;i>=0;i--)
			if(a[i]!=-1)
				if(i+e<=n)
					if(a[i+e]!=-1)
						a[i+e]=min(a[i]+c,a[i+e]);
					else
						a[i+e]=a[i]+c;
					else
						if(a[n]!=-1)
							a[n]=min(a[i]+c,a[n]);
					else
						a[n]=a[i]+c;
		nm=min(nm+e,n);
		m--;
	}
	if(nm==n)
		g<<a[n];
	else
		g<<-1;
	return 0;
}