Pagini recente » Cod sursa (job #1096755) | Cod sursa (job #2297895) | Cod sursa (job #886675) | Cod sursa (job #2146970) | Cod sursa (job #1477692)
#include <cstdio>
#include <algorithm>
#include <cstring>
#define WMAX 5007
#define inf 1000000007
using namespace std;
FILE *fin, *fout;
int g, w, e, c, dp[2][WMAX];
void citire()
{
memset(dp, inf, sizeof(dp));
dp[0][0] = 0;
dp[1][0] = 0;
scanf("%d %d", &g, &w);
for(int i = 1; i<= g; ++i)
{
scanf("%d %d", &e, &c);
int line = (int)(i&1), prev = !line;
for(int j = 0; j<= w; ++j)
{
dp[line][j] = dp[prev][j];
if(j - e >= 0)
{
dp[line][j] = min(dp[prev][j], dp[prev][j-e] + c);
}
}
}
}
void afisare()
{
if(dp[g&1][w] >= inf) printf("-1\n");
else printf("%d\n", dp[g&1][w]);
}
int main()
{
fin = freopen("energii.in", "r", stdin);
fout = freopen("energii.out", "w", stdout);
citire();
afisare();
fclose(fin);
fclose(fout);
return 0;
}