Cod sursa(job #720238)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 22 martie 2012 14:48:43
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");
inline int Maxim(int a, int b){ return a>b?a:b; }

int x[10001], y[10001];

int main()
{
	int n,gmax;
	int c[5005],p[5005];

	fin >> n >> gmax;
	for(int i=1 ; i<=n ; i++)
		fin>>c[i]>>p[i];
	int *a = x , *b = y;
	for(int i=1;i<=n;i++){
		for(int j=1 ; j<=gmax ;++j)
			if(j-c[i]<0)
				b[j] = a[j];
			else
				b[j] = Maxim(a[j], a[j-c[i]] + p[i]);
		int *aux = a;
		a = b; b = aux;
	}
	fout << a[gmax] << "\n";
	fin.close();
	fout.close();
	return 0;

}