Pagini recente » Cod sursa (job #414012) | Cod sursa (job #3183093) | Cod sursa (job #1841762) | Cod sursa (job #2614297) | Cod sursa (job #2956423)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <list>
#include <regex>
#include <sstream>
#include <numeric>
#include <bitset>
using namespace std;
#define MAX 10001
#define CAP_MAX 10001
int n, GT;
int castig[MAX], greutate[MAX];
int v[2][MAX] = {};
vector<int> dp(MAX, 0);
void readInput() {
int i;
///printf("Numarul de obiecte: ");
scanf("%d", &n);
/// printf("Capacitatea rucsacului: ");
scanf("%d", >);
for (i = 1; i <= n; i++) {
///printf("Greutate[%d] = ", i);
scanf("%d", &greutate[i]);
///printf("Castig[%d] = ", i);
scanf("%d", &castig[i]);
}
}
void print(vector<int> v)
{
for (int i = 0; i < v.size(); i++)
{
printf("%d ", v[i]);
}
printf("\n");
}
void Run() {
int i, j, k;
vector<int> dp2(MAX, 0);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= GT; j++)
{
if (greutate[i] <= j)
{
dp2[j] = max(dp[j], dp[j - greutate[i]] + castig[i]);
}
}
dp = dp2;
//print(dp);
}
printf("%d", dp[GT]);
}
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
readInput();
Run();
return 0;
}