Pagini recente » Cod sursa (job #1822340) | Cod sursa (job #2406675) | Cod sursa (job #1933925) | Cod sursa (job #1213502) | Cod sursa (job #1140028)
#include<fstream>
#include<algorithm>
using namespace std;
const int MAX = 10004;
int x[MAX], y[MAX];
int D[2][MAX*2];
int pmax = 0;
int min(int a, int b)
{
if (a < b)
a = b;
return a;
}
int main()
{
int G, W, i, j, sumX = 0, sumY = 0, suma = 0, max = 0;
ifstream g("energii.in");
ofstream f("energii.out");
g >> G >> W;
for (i = 1; i <= G; i++)
{
g >> x[i];
g >> y[i];
suma += x[i];
}
if (suma < W)
f << "-1";
else
{
int l = 0;
for (i = 1; i <= G; i++, l=1-l)
for (int cw = 0; cw <= W; cw++)
{
D[1 - l][cw] = D[l][cw];
if (x[i] <= cw)
D[1 - l][cw] = min(D[l][cw], D[l][cw - x[i]] + y[i]);
}
pmax = D[l][W];
f << pmax;
}
}