Pagini recente » Cod sursa (job #2300599) | Cod sursa (job #3168518) | Cod sursa (job #2357043) | Cod sursa (job #2113743) | Cod sursa (job #2051772)
#include <bits/stdc++.h>
using namespace std;
istream f("rucsac.in");
ostream g("rucsac.out");
int n,gmax,cmax,c,g,a[1001];
struct op {
int o,g,x;
float c;
}v[1001];
void retine(int cost) {
int i;
if (cost>cmax) {
cmax=cost;
for (i=1;i<=n;i++)
a[i]=v[i].x;
}
}
void bkt(int k) {
int i;
for (i=0;i<=1;i++) {
v[k].x=i;
g+=v[k].g*v[k].x;
c+=v[k].c*v[k].x;
if (k==n) {
if (gmax==g) retine(c);
}
else bkt(k+1);
c-=v[k].c*v[k].x;
g-=v[k].g*v[k].x;
}
}
int main() {
int i;
f>>n>>gmax;
for (i=1;i<=n;i++) {
f>>v[i].g>>v[i].c;
v[i].o=i;
}
bkt(1);
//for (i=1;i<=n;i++)
// if (a[i]) cout<<i<<' ';
g<<'\n'<<cmax;
return 0;
}