Cod sursa(job #797568)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 14 octombrie 2012 13:26:27
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <string.h>
#include <algorithm>
#define INF (1 + (1<<8) + (1<<16) + (1<<24))

using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n, w, d[10010], e[1010], c[1010], i, j;
int main(){
	memset(d, 1, sizeof(d));
	f>>n>>w;
	for(i=1; i<=n; i++)
		f>>e[i]>>c[i];
	f.close();
	d[0]=0;
	for(i=1; i<=n; i++)
	{
		for(j=w; j>=0; j--)
		{
			if(d[j]!=INF) {
				if (j+e[i] <= w)
					d[j+e[i]] = min(d[j] + c[i], d[j+e[i]]);
				else
					d[w]= min(d[w], d[j]+c[i]);
			}
		}
	}
	if(d[w]!=INF)
		g<<d[w];
	else
		g<<"-1";
	g<<"\n";
	g.close();
	return 0;
}