Pagini recente » Cod sursa (job #312186) | Cod sursa (job #496359) | Cod sursa (job #991717) | Cod sursa (job #2126234) | Cod sursa (job #1212899)
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
bitset<10010> v;
int D[10010];
int n, m, i, j, G, g, p, sol;
int main() {
fin>>n>>G;
v[0] = 1;
m = 1;
for (i=1;i<=n;i++) {
fin>>g>>p;
m+=g;
if (m>G)
m = G;
for (j=m;j>=0;j--) {
if (v[j] == 1) {
if (j+g <= G && D[j+g] < D[j] + p) {
v[j+g] = 1;
D[j+g] = D[j] + p;
sol = max(sol, D[j+g]);
}
}
}
}
fout<<sol;
return 0;
}