Cod sursa(job #473060)

Utilizator andunhillMacarescu Sebastian andunhill Data 27 iulie 2010 21:09:13
Problema Energii Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;
#define nm 100025
#define INF 239581982
ifstream f("energii.in");
ofstream g("energii.out");
long map[1005][nm];
long n,ec,min1,i,j;
long e[1005],ct[1005];
int main()
{	f>>n>>ec;
	for(i=1;i<=n;i++)
		f>>e[i]>>ct[i];
	//dp[1][E[1]] = C[1];
	for(j=1;j<=ec;j++)
		map[0][j]=INF;
	for(i=1;i<=n;i++)
		for(j=0;j<=ec;j++)
		{	//dp[i][E[i]] = C[i];
			if(map[i-1][j]!=0)
				map[i][j]=min(map[i-1][j],map[i-1][j-e[i]]+ct[i]);
			else
				if(j-e[i]>=0 && map[i-1][j-e[i]]!=0)
					map[i][j]=map[i-1][j-e[i]]+ct[i];
		}
	min1=INF;
	for(i=1;i<=n;i++)
		for(j=ec;j<=ec+50;j++)
			if(map[i][j]!=0&&map[i][j]!=INF&& map[i][j]<min1)
				min1=map[i][j];
	if(min1!=INF)
		g<<min1;
	else g<<"-1";
	f.close();
	g.close();
	return 0;
}