Pagini recente » Borderou de evaluare (job #522274) | Cod sursa (job #915808) | Cod sursa (job #731494) | Cod sursa (job #3275336) | Cod sursa (job #3165149)
#include <iostream>
#include <fstream>
using namespace std;
const int MAXG = 1e7;
int solutii[MAXG + 1];
ifstream fin("energii.in");
ofstream fout("energii.out");
int main()
{
ios_base::sync_with_stdio(false);
int n, g, i, j, w, p, nou;
fin >> n >> g;
for (i = 0; i < n; i++) {
fin >> p >> w;
for (j = w; j > 0; j--)
if (solutii[j] > 0) {
nou = solutii[j] + p;
solutii[j + w] = max(nou, solutii[j + w]);
}
solutii[w] = max(p, solutii[w]);
/*for (j = 1; j <= g; j++)
fout << j << ' ' << solutii[j] << '\n';
fout << "stop\n\n";*/
}
for (int i = 0; i <= 1e7; i++)
if (solutii[i] >= g) {
fout << i << '\n';
return 0;
}
fout << "-1\n";
return 0;
}