Pagini recente » Diferente pentru warm-up-2019/solutii/shoturi intre reviziile 9 si 8 | Statistici Manoloiu Ciprian (Manoloiuciprian) | Istoria paginii utilizator/cristyklu | Istoria paginii runda/ada7 | 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;
}