#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[20],b[20];
string pp[36290];
int cnt = 0;
bool f[10];
void dfs(int n,string p,int mx) {
if (n <= 0) {
cnt++;
pp[cnt] = p;
return ;
}
for (int i=1;i<=mx;i++) {
if (f[i]) {
continue;
}
string o = p;
o = o + (char)(i+'0');
f[i] = true;
dfs(n-1,o,mx);
f[i] = false;
}
}
int suan(string p,int mx) {
int c = 0;
for (int i=0;i<p.size();i++) {
int ii = (p[i]-'0');
c++;
if (ii != mx) {
c += max(b[ii+1],a[ii+2]);
}
}
return c;
}
signed main() {
int n;
cin >> n;
for (int i=1;i<=n;i++) {
cin >> a[i] >> b[i];
}
dfs(n,"",n);
int mn = 1e9;
for (int i=1;i<=cnt;i++) {
mn = min(mn,suan(pp[i],n));
}
cout << mn;
}
样例过但是没法AC