Cod sursa(job #932674)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 29 martie 2013 09:10:46
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
using namespace std;
int costminim[1005][5001];
long long s;
int main()
{
	int g,energie[1005],w,i,cost[1005],y;
	ifstream f1("energii.in");
	ofstream f2("energii.out");
	f1>>g>>w;
	for (i=1;i<=g;++i)
	{
		f1>>energie[i]>>cost[i];
		s+=energie[i];
	}
	if (s<w)
	{
	    f2<<"-1\n";
	    f1.close();
	    f2.close();
	    return 0;
	}
	for (i=1;i<=w;++i)
		costminim[0][i]=2000000000;
    for (i=1;i<=g;++i)
		costminim[i][0]=2000000000;
	for (i=1;i<=g;++i)
		for (y=1;y<=w;++y)
		{
			if (energie[i]>=y)
			{
				costminim[i][y]=min(costminim[i-1][y],cost[i]);
			}
			else
			{
				costminim[i][y]=min(costminim[i-1][y],costminim[i-1][y-energie[i]]+cost[i]);
			}
		}
	f2<<costminim[g][w]<<'\n';
	f1.close();
	f2.close();
	return 0;
}