Pagini recente » Cod sursa (job #1805435) | Cod sursa (job #438544) | Cod sursa (job #1573342) | Cod sursa (job #1194402) | Cod sursa (job #2051775)
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,gmax,cmax,c,gg,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;
gg+=v[k].g*v[k].x;
c+=v[k].c*v[k].x;
if (k==n) {
if (gmax==gg) retine(c);
}
else bkt(k+1);
c-=v[k].c*v[k].x;
gg-=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;
g<<cmax;
return 0;
}