感觉总体应该问题不大,但是输出的时候所有的样例cha都是没变的
#include<iostream>
#include<cmath>
using namespace std;
struct food {
int s;
int b;
};
int n;
food arr[10];
int book[100];
long cha = 99999999;
void dfs(int index,int sums,int sumb) {
if(index>=n){
if (abs(sums-sumb )< cha) {
cha = abs(sums - sumb);
}
return;
}
for (index; index < n; index++) {
if (book[index] == 0) {
book[index] = 1;
dfs(index++, sums * arr[index].s, sumb + arr[index].b);
book[index] = 0;
}
}
}
int main() {
cin >> n;
for (int i = 0; i <n; i++) {
cin >> arr[i].s >> arr[i].b;
}
dfs(0, 1, 0);
cout << cha;
}