Pagini recente » Cod sursa (job #2386339) | Cod sursa (job #1130095) | Cod sursa (job #542551) | Cod sursa (job #1009381) | Cod sursa (job #1809265)
#include <fstream>
struct {
int w, p;
} v[5000];
int d[10000];
int main(int argc, char **argv)
{
std::ifstream in("rucsac.in");
std::ofstream out("rucsac.out");
int n, r;
in >> n >> r;
for (int i = 0; i < n; i++)
in >> v[i].w >> v[i].p;
for (int i = 0; i < n; i++)
for (int j = r - v[i].w; j >= 0; j--)
if (d[j + v[i].w] < d[j] + v[i].p)
d[j + v[i].w] = d[j] + v[i].p;
int max = 0;
for (int i = 1; i <= r; i++)
if (d[i] > max)
max = d[i];
out << max << std::endl;
in.close();
out.close();
return 0;
}