Cod sursa(job #696370)

Utilizator Detrol2kGuianu Leon Detrol2k Data 28 februarie 2012 18:17:15
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <iostream>
#include <string.h>

#define INF 20000

using namespace std;

int min(int a, int b)
{
	if(a>b)
		return b;
	else
		return a;
}


int main()
{
	int g,w,a[1005][5005],e[1005],c[1005],i,j;
	
	ifstream f("energii.in");
	ofstream h("energii.out");
	
	f>>g>>w; 
	
	for(i=1; i<=g; i++)
	{
		f>>e[i]>>c[i];
	}
	
	memset(a,INF,sizeof(a));
	
	for(i=1; i<=g; i++)
		for(j=1; j<=w; j++)
			if(j<=e[i])
				a[i][j]=min(a[i-1][j],c[i]);
			else
				a[i][j]=min(a[i-1][j],a[i-1][j-e[i]]+c[i]);
			
	if(a[g][w]==INF)
		h<<-1;
	else
		h<<a[g][w];
	
return 0;

}