Pagini recente » Cod sursa (job #1426889) | Cod sursa (job #57966) | Cod sursa (job #2890607) | Cod sursa (job #3210023) | Cod sursa (job #1140070)
#include<fstream>
#include<algorithm>
using namespace std;
const int MAX = 10004;
int x[MAX], y[MAX];
int D[3][MAX * 2] = { 1 };
int pmin;
int minp(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 = 1;
for (i = 1; i <= G; i++)
{
for (int cw = 1; 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]);*/
if (cw > x[i])
D[i - l][cw] = minp(D[i - l][cw], D[i - l][cw - x[i]] + y[i]);
else
D[i][cw] = minp(D[i - 1][cw], y[i]);
}
}
f << D[G][W];
}
}