2961
#include <iostream>
#include <vector>
using namespace std;
int n;
int answer = 987654321;
vector<pair<int, int>> v;
int visited[10] = {false};
int getDiff(vector<int> selectedIdxs)
{
int sour = 1;
int bitter = 0;
for (int i = 0; i < selectedIdxs.size(); i++)
{
sour *= v[selectedIdxs[i]].first;
bitter += v[selectedIdxs[i]].second;
}
return abs(sour - bitter);
}
void getAnswer(int index, vector<int> selectedIdxs)
{
answer = min(answer, getDiff(selectedIdxs));
for (int i = index + 1; i < n; i++)
{
if (!visited[i])
{
visited[i] = true;
selectedIdxs.push_back(i);
getAnswer(i, selectedIdxs);
visited[i] = false;
selectedIdxs.pop_back();
}
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
int sour, bitter;
cin >> sour >> bitter;
v.push_back(make_pair(sour, bitter));
}
for (int i = 0; i < n; i++)
{
vector<int> selectedIdxs;
visited[i] = true;
selectedIdxs.push_back(i);
getAnswer(i, selectedIdxs);
}
cout << answer;
}