Pagini recente » Cod sursa (job #2553005) | Cod sursa (job #2624470) | Cod sursa (job #94341) | Cod sursa (job #1530942) | Cod sursa (job #1257398)
#include <iostream>
#include <fstream>
using namespace std;
int costuri[10000000];
int main()
{
ifstream in("energii.in");
ofstream out("energii.out");
int i, g, w, egi, cgi, enec = -1, maximumc = 0, j,ccc,ddd;
in >> g;
in >> w;
for (i = 1; i <= g; i++)
{
in >> egi;
in >> cgi;
ccc = 0;
ddd = maximumc;
for (j = maximumc; j >= 1; j--)
{
if (costuri[j] > 0)
{
if (costuri[j + cgi] < costuri[j] + egi)
{
costuri[j + cgi] = costuri[j] + egi;
if (ccc<costuri[j + cgi]){ ccc = costuri[j + cgi]; ddd = j + cgi; }
if (j + cgi > maximumc)
{
maximumc = j + cgi;
}
}
}
}
maximumc = ddd;
if (maximumc < cgi){ maximumc = cgi; }
if (costuri[cgi]>egi || costuri[cgi] == 0){ costuri[cgi] = egi; }
}
for (i = 1; i <= maximumc; i++)
{
if (costuri[i] >= w){ enec = i; break; }
}
out << enec;
return 0;
}