#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=20,MAX=1e9+10;
int n,a[N],b[N],ans=MAX;
void dfs(int cnt,int m,int s,int k,int t){
if(cnt>0) ans=min(ans,abs(s-k));
if(cnt==m) return ;
for(int i=t;i<=n;++i){
dfs(cnt+1,m,s*a[i],k+b[i],t+1);
}
return ;
}
signed main(){
cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i]>>b[i];
for(int i=1;i<=n;++i){
dfs(0,i,1,0,1);
}
cout<<ans<<endl;
return 0;
}
样例#4:
输入:
7
7 1297
9 1230
4 5780
4 1235
3 7652
8 979
10 977
输出:
439