数据范围10,巨小,直接dfs枚举。
指数型枚举,注意至少要选一个物品。
const int N=15;
PII a[N];
int ans=INF;
int n;
void dfs(int u,int muls,int sumb)
{
if(u == n)
{
if(muls == 1 && sumb == 0) return;
ans=min(ans,abs(muls-sumb));
return;
}
dfs(u+1,muls*a[u].fi,sumb+a[u].se);
dfs(u+1,muls,sumb);
}
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i].fi>>a[i].se;
dfs(0,1,0);
cout<<ans<<endl;
//system("pause");
}