Pagini recente » Cod sursa (job #620457) | Cod sursa (job #2653233) | Cod sursa (job #1106060) | Cod sursa (job #3166266) | Cod sursa (job #1672219)
#include <fstream>
#include <bitset>
#include <cstdio>
#define NM 1005
#define VAL 10000005
using namespace std;
int N, G, i, mn;
int c, e;
int dp[VAL], s, j;
bitset<VAL> ok;
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
mn=2000000000;
ok[0]=1;
scanf("%d %d", &G, &N);
for (i=1; i<=G; i++)
{
scanf("%d %d", &e, &c);
s+=e;
for (j=s-e; j>=0; j--)
{
if (ok[j]==1)
{
ok[j+e]=1;
if (dp[j+e]==0)
dp[j+e]=dp[j]+c;
else
dp[j+e]=min(dp[j]+c, dp[j+e]);
if (j+e>=N)
mn=min(mn, dp[j+e]);
}
}
}
if (s<N)
printf("%d\n", -1);
else
printf("%d\n", mn);
return 0;
}