import java.io.DataInputStream;
import java.util.ArrayList;

public class gambling {

	private static int readNumber(DataInputStream drd) throws Exception{
		int number = 0;
		byte read = drd.readByte();
		while (read !=(byte)' ' && read != (byte)'\n'){
			number *=10;
			number += (read-48);
			read = drd.readByte();
		}
		return number;
	}

	public static void main(String[] args) throws Exception{
		DataInputStream drd = new DataInputStream(System.in);

		int num = 0;
		while ((num = readNumber(drd))!=0){
			long sum = 0;
			long sumCover = 0;
			long minSumCover = 2000000000;
			int k =0;
			int pole[] = new int[num];
			k = (num / 2) -1;
			for (int i=0;i<num;i++){
				pole[i]=readNumber(drd);
				sum += pole[i];
				if (i>=k){
					if (sumCover<minSumCover) {
						minSumCover = sumCover;
					}
					sumCover = sumCover + pole[i] - pole[i-k];
				} else {
					sumCover += pole[i];
				}
			}
			for (int i=0;i<k;i++){
				if (sumCover<minSumCover) {
						minSumCover = sumCover;
				}
				sumCover = sumCover + pole[i] - pole[(i-k)+num];
			}
			System.out.println((sum+minSumCover)+"");
		}
	}
}
