Pagini recente » Monitorul de evaluare | Profil irina202 | Cod sursa (job #2483969) | Rating Bondor Mihaela (Mihaela98) | Cod sursa (job #1783968)
#include <fstream>
#include <vector>
using namespace std;
const int kInfinit = (1 << 30);
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, necesar;
fin >> n >> necesar;
vector<int> cost_min(necesar + 1, kInfinit);
cost_min[0] = 0;
int smax = 0;
while (n--) {
int energie, cost;
fin >> energie >> cost;
for (int i = smax; i >= 0; --i) {
if (cost_min[i] != kInfinit) {
int energie_final = min(i + energie, necesar);
if (cost_min[i] + cost < cost_min[energie_final]) {
cost_min[energie_final] = cost_min[i] + cost;
smax = max(smax, i + energie);
}
}
}
}
if (cost_min.back() == kInfinit)
cost_min.back() = -1;
fout << cost_min.back() << "\n";
return 0;
}