这是代码:
#include<bits/stdc++.h>
using namespace std;
int n,d[10],a[10],b[10],c[10];long long ans=1e18;
void DFS(int now){
if(now==n){
long long cnt=n+max(b[c[0]],a[c[1]]);
for(int i=1;i<n-1;i++){
cnt+=max(b[c[i]],a[c[i+1]]);
}
ans=min(ans,cnt);
}
else{
for(int i=1;i<=n;i++)d[i]=0;
for(int i=0;i<now;i++)d[c[i]]++;
for(int i=1;i<=n;i++)if(d[i]==0){ c[now]=i;DFS(now+1); }
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
DFS(0);cout<<ans;
return 0;
}
求求了