30分
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,ans=1000000010;
struct node{
int x,y;
}a[20];
node t;
int b[20];
void dfs(int y,int z)
{
if(y>n)
return;
for(int i=1;i<=n;i++)
{
if(b[i]==0)
{
b[i]=1;
if(abs(t.x*a[i].x-t.y-a[i].y)<abs(t.x-t.y))
{
t.x*=a[i].x;
t.y+=a[i].y;
}
ans=min(ans,abs(t.x-t.y));
dfs(y+1,i);
b[i]=0;
}
else
continue;
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
t.x=a[1].x;
t.y=a[1].y;
dfs(1,1);
cout<<ans;
return 0;
}