Pagini recente » Cod sursa (job #1059301) | Cod sursa (job #2602605) | simulare-oni-2014 | Cod sursa (job #1772160) | Cod sursa (job #2116250)
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct set
{
int w, p;
};
set vec[1000];
int n, g;
set aux;
int main()
{
fin >> n >> g;
for (int i = 1; i <= n; i++)
{
fin >> vec[i].w >> vec[i].p;
}
int arr[n + 1][g + 1];
for(int i = 0; i < n; i++){
for(int j = 0; j < g; j++){
arr[i][j] = 0;
}
}
//cout << "\n";
for(int i = 1; i <= n; i++){
for(int j = 1; j <= g; j++){
if(j < vec[i].w || arr[i - 1][j] >= arr[i - 1][j - vec[i].w] + vec[i].p){
arr[i][j] = arr[i - 1][j];
} else {
arr[i][j] = arr[i - 1][j - vec[i].w] + vec[i].p;
}
}
}
//for(int i = 1; i <= n; i++){
// for(int j = 1; j <= g; j++){
// cout << arr[i][j] << " ";
// }
fout << arr[n][g] << "\n";
//}
return 0;
}