Pagini recente » Ecuatii2 | Diferente pentru preoni-2006/runda-3/solutii intre reviziile 13 si 25 | Istoria paginii dot-com/2009/solutii/runda-2 | Istoria paginii utilizator/eduardl | Cod sursa (job #967594)
Cod sursa(job #967594)
#include <fstream>
#include <cmath>
using namespace std;
#define MAXINT 200000000
int A[1002][5002];
int main()
{
ifstream f("energii.in");
ofstream f2("energii.out");
int G, Wmin;
f>>G>>Wmin;
int w[1002];
int cost[1002];
for(int i = 0; i < G; ++i) f>>w[i]>>cost[i];
for(int i = 0; i <= Wmin; ++i) A[0][i] = MAXINT;
for(int j = 0; j <= G; ++j) A[j][0] = MAXINT;
for(int elem = 1; elem < G; ++elem)
for(int sum = 1; sum <= Wmin; ++sum)
if(sum <= w[elem])
A[elem][sum] = min(cost[elem], A[elem-1][sum]);
else
A[elem][sum] = min(A[elem-1][sum], cost[elem] + A[elem-1][sum-w[elem]]);
int res = A[G-1][Wmin];
if(res == MAXINT) f2<<"-1";
else f2<<res;
}