好斗的牛

代码:

#include<bits/stdc++.h>
using namespace std;
int n,ans=1e9,a[15],b[15];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	if(n==1){
		ans=1;
	}
	if(n==2){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				ans=min(ans,max(b[r],a[s])+2);
			}
		}
	}
	if(n==3){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+3);
				}
			}
		}
	}
	if(n==4){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+4);
					}
				}
			}
		}
	}
	if(n==5){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						for(int v=1;v<=n;v++){
							if(v==r||v==s||v==t||v==u) continue;
							ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+max(b[u],a[v])+5);	
						}
					}
				}
			}
		}
	}
	if(n==6){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						for(int v=1;v<=n;v++){
							if(v==r||v==s||v==t||v==u) continue;
				 			for(int w=1;w<=n;w++){
				 				if(w==r||w==s||w==t||w==u||w==v) continue;
								ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+max(b[u],a[v])+max(b[v],a[w])+6);	
							}
						}
					}
				}
			}
		}
	}
	if(n==7){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						for(int v=1;v<=n;v++){
							if(v==r||v==s||v==t||v==u) continue;
				 			for(int w=1;w<=n;w++){
				 				if(w==r||w==s||w==t||w==u||w==v) continue;
								for(int x=1;x<=n;x++){
									if(x==r||x==s||x==t||x==u||x==v||x==w) continue;
									ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+max(b[u],a[v])+max(b[v],a[w])+max(b[w],a[x])+7);
								}
							}
						}
					}
				}
			}
		}
	}
	if(n==8){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						for(int v=1;v<=n;v++){
							if(v==r||v==s||v==t||v==u) continue;
				 			for(int w=1;w<=n;w++){
				 				if(w==r||w==s||w==t||w==u||w==v) continue;
								for(int x=1;x<=n;x++){
									if(x==r||x==s||x==t||x==u||x==v||x==w) continue;
									for(int y=1;y<=n;y++){
										if(y==r||y==s||y==t||y==u||y==v||y==w||y==x) continue;
										ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+max(b[u],a[v])+max(b[v],a[w])+max(b[w],a[x])+max(b[x],a[y])+8);
									}
								}
							}
						}
					}
				}
			}
		}
	}
	if(n==9){
		for(int r=1;r<=n;r++){
			for(int s=1;s<=n;s++){ 
				if(s==r) continue;
				for(int t=1;t<=n;t++){
					if(t==r||t==s) continue;
					for(int u=1;u<=n;u++){
						if(u==r||u==s||u==t) continue;
						for(int v=1;v<=n;v++){
							if(v==r||v==s||v==t||v==u) continue;
				 			for(int w=1;w<=n;w++){
				 				if(w==r||w==s||w==t||w==u||w==v) continue;
								for(int x=1;x<=n;x++){
									if(x==r||x==s||x==t||x==u||x==v||x==w) continue;
									for(int y=1;y<=n;y++){
										if(y==r||y==s||y==t||y==u||y==v||y==w||y==x) continue;
										for(int z=1;z<=n;z++){
											if(z==r||z==s||z==t||z==u||z==v||z==w||z==x||z==y) continue;
											ans=min(ans,max(b[r],a[s])+max(b[s],a[t])+max(b[t],a[u])+max(b[u],a[v])+max(b[v],a[w])+max(b[w],a[x])+max(b[x],a[y])+max(b[y],a[z])+9);
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	cout<<ans;
	return 0;
}

可以粘贴一下试试,能AC。