Pagini recente » Cod sursa (job #1311712) | Cod sursa (job #2103058) | Cod sursa (job #1292533) | Cod sursa (job #1225485) | Cod sursa (job #2047401)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int Nmax = 1000 + 5;
const int Dmax = 10001 + 5001 + 5;
int n, pg, p, c, ans;
int dp[Dmax];
int main()
{
fin >> n >> pg;
dp[0] = 0; ans = 1 << 30;
for(int i = 1; i <= pg + 10002; ++i)
dp[i] = 1 << 30;
for(int i = 1; i <= n; ++i)
{
fin >> p >> c;
for(int j = pg - 1; j >= 0; --j)
if(dp[j] != 1 << 30)
{
dp[j + p] = min(dp[j + p], dp[j] + c);
if(j + p >= pg)
ans = min(dp[j + p], ans);
}
dp[p] = min(dp[p], c);
if(p >= pg)
ans = min(dp[p], ans);
}
if(ans == 1 << 30)ans = -1;
fout << ans;
return 0;
}