#include<iostream>
#include<vector>
#include<queue>
#include<cstdio>

using namespace std;

long a[200005];
long b[200005];

int main()
{
	long n;
	while ((scanf("%ld",&n))&&(n!=0)) {
		long long sucet=0;
		for(int i=0;i<n;i++) b[i]=0;
		priority_queue<int> m;
		for(int i=0;i<n;i++) {
			scanf("%ld",&a[i]);
			sucet+=a[i];
		}
		long long sum=0;
		long long min=2000000000;
		long k=n/2;
		for(int i=0;i<k-1;i++) {sum+=a[i];m.push(a[i]);}

		int zac=0,kon=k-1;
		while (zac<n) {
			sum+=a[kon];
//			printf("sum:%d<\n",sum);
			m.push(a[kon]);
			//for(priority_queue<int>::iterator it = m.begin();it<m.end();it++) {printf("Q:%d\n",*it);}
//			for(int i=0;i<10;i++) printf("%d:%d ",i,b[i]);printf("\n");
//			printf("zac:%d kon:%d\n",zac,kon);
			long max=m.top();
			while(b[max]>0) {b[max]--;m.pop();max=m.top();}

			if (sum-max<min) min=sum-max;

			sum-=a[zac];
			b[a[zac]]++;
			zac++;kon=(kon+1)%n;
		}
		printf("%lld\n",sucet+min);
	}
	return 0;
}
