#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<iomanip>
using namespace std;
struct spices
{
int acid;
int bitter;
}spice[15];
int n,dvalue=1000;
int totalacid=1, totalbitter=0;
void f(int flag, int num,int totalacid,int totalbitter)
{
if (num == 0)
{
if (abs(totalacid - totalbitter) < dvalue)
{
dvalue = abs(totalacid - totalbitter);
}
return;
}
if (num > n - flag + 1)
{
return;
}
for (int i = flag; i <= n; i++)
{
f(i+ 1, num - 1, totalacid * spice[i].acid, totalbitter + spice[i].bitter);
}
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> spice[i].acid >> spice[i].bitter;
}
for (int i = 1; i <= n; i++)
{
f(1, i,1,0);
}
cout << dvalue << endl;
}
#6 #7错误,求教如何在这个代码的基础上调整