Pagini recente » Cod sursa (job #1318333) | Cod sursa (job #582421) | Cod sursa (job #2058579) | Cod sursa (job #1789906) | Cod sursa (job #718643)
Cod sursa(job #718643)
#include <cstdio>
#define gMax 10001
#define nMax 5001
#define max(a, b) ((a > b)? a : b )
using namespace std;
int n;
int g;
int greutate[nMax];
int cost[nMax];
int a[gMax][nMax];
void citire()
{
scanf ("%d %d", &n, &g);
for (int i = 1; i <= n; ++ i){
scanf ("%d %d", &greutate[i], &cost[i]);
}
}
void rez()
{
for (int i = 1; i <= g; ++ i){
for (int j = 1; j <= n; ++ j){
a[i][j] = max (a[i - 1][j], a[i][j - 1]);
if (i >= greutate[j]){
a[i][j] = max (a[i][j], a[i - greutate[j]][j - 1] + cost[j]);
}
}
}
printf ("%d\n", a[g][n]);
}
int main()
{
freopen ("rucsac.in", "r", stdin);
freopen ("rucsac.out", "w", stdout);
citire();
rez();
return 0;
}