程序
#include<bits/stdc++.h>
using namespace std;
int n,a[12],b[362880][9],c=0,m=1e+7;
void print()
{
for(int i=1;i<=n;i++)
{
b[c][i]=a[i];
}
c++;
}
void arrange(int x)
{
if(n+1==x)
{
print();
return;
}
for(int i=1;i<=n;i++)
{
bool flag=true;
for(int j=1;j<x;j++)
{
if(a[j]==i)
{
flag=false;
}
}
if(flag)
{
a[x]=i;
arrange(x+1);
a[x]=0;
}
}
}
int main()
{
cin>>n;
arrange(1);
int s[n],t[n];
for(int i=0;i<n;i++)
{
cin>>s[i];
}
for(int i=0;i<n;i++)
{
cin>>t[i];
}
for(int i=0;i<362880;i++)
{
int sum=0,temp=0;
int e[n];
for(int j=0;j<9;j++)
{
if(b[i][j]<=n)
{
e[temp]=b[i][j];
temp++;
}
}
for(int j=0;j<n-1;j++)
{
sum+=max(s[b[i][e[j]]],t[b[i][e[j+1]]]);
sum++;
}
m=min(m,sum);
}
cout<<m;
return 0;
}