Pagini recente » Cod sursa (job #1011371) | Cod sursa (job #342716) | Cod sursa (job #886997) | Cod sursa (job #3199132) | Cod sursa (job #2920059)
#include <fstream>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
const int max_size = 1e3 + 1, max_dp = 1e4 + 1, INF = 1e9 + 1;
int sol[max_dp], p[max_size], e[max_size];
int main ()
{
for (int i = 1; i < max_dp; i++)
{
sol[i] = INF;
}
int s = 0, n, g;
in >> n >> g;
for (int i = 1; i <= n; i++)
{
in >> e[i] >> p[i];
s += e[i];
}
if (s < g)
{
out << -1;
in.close();
out.close();
return 0;
}
for (int i = 1; i <= n; i++)
{
for (int j = g + e[i]; j >= 0; j--)
{
if (sol[j + e[i]] > sol[j] + p[i])
{
sol[j + e[i]] = sol[j] + p[i];
}
}
}
s = g;
while (s < max_dp && sol[s] != INF)
{
s++;
}
out << s;
in.close();
out.close();
return 0;
}