WA on #1 #2 #3 #4
#include<bits/stdc++.h>
using namespace std;
const int maxn=10+2;
int n;
int ans=2e9+1;
struct aaa
{
int s,b;
bool isused;
}a[maxn];
int check()
{
bool iscom=false;
int stot=1,btot=0;
for (int i=1;i<=n;i++)
{
if (a[i].isused)
{
stot*=a[i].s;
btot+=a[i].b;
iscom=true;
}
}
if (iscom) return abs(stot-btot);
else return -1;
}
void dfs(int k)
{
if (k>n)
{
if (check()!=-1) ans=min(check(),ans);
return;
}
a[k+1].isused=true;
dfs(k+1);
a[k+1].isused=false;
dfs(k+1);
}
int main()
{
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a[i].s>>a[i].b;
a[i].isused=false;
}
dfs(1);
cout<<ans<<"\n";
return 0;
}