Pagini recente » Diferente pentru preoni-2008/runda-1/solutii intre reviziile 15 si 33 | Diferente pentru preoni-2007/runda-3/solutii intre reviziile 53 si 20 | Istoria paginii runda/bibelcontest/clasament | Monitorul de evaluare | Cod sursa (job #2505890)
#include <iostream>
#include <fstream>
#define INF 2000000000
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
int n, k;
long long DP[10005];
int main()
{
fi >> n >> k;
for (int i = 1; i <= k; ++i)
DP[i] = INF;
for (int i = 1; i <= n; ++i)
{
long long energie, cost; fi >> energie >> cost;
for (int j = k; j > 0; --j)
if (j < energie)
DP[j] = min(DP[j], cost);
else
DP[j] = min(DP[j], DP[j - energie] + cost);
}
if (DP[k] == INF)
fo << -1;
else
fo << DP[k];
fi.close();
fo.close();
return 0;
}