description: Petya has got an interesting flower. Petya is a busy person, so he sometimes forgets to water it. You are given n days from Petya's live and you have to determine what happened with his flower in the end.
  
  The flower grows as follows: 
  
    * If the flower isn't watered for two days in a row, it dies. 
    * If the flower is watered in the i-th day, it grows by 1 centimeter. 
    * If the flower is watered in the i-th and in the (i-1)-th day (i > 1), then it grows by 5 centimeters instead of 1. 
    * If the flower is not watered in the i-th day, it does not grow. 
  
  
  
  At the beginning of the 1-st day the flower is 1 centimeter tall. What is its height after n days?
  
  Input
  
  Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 100). Description of the test cases follows.
  
  The first line of each test case contains the only integer n (1 ≤ n ≤ 100).
  
  The second line of each test case contains n integers a_1, a_2, ..., a_n (a_i = 0 or a_i = 1). If a_i = 1, the flower is watered in the i-th day, otherwise it is not watered.
  
  Output
  
  For each test case print a single integer k — the flower's height after n days, or -1, if the flower dies.
  
  Example
  
  Input
  
  
  4
  3
  1 0 1
  3
  0 1 1
  4
  1 0 0 1
  1
  0
  
  
  Output
  
  
  3
  7
  -1
  1
solution: import java.util.*;
  import java.io.*;
  public class s1 {
  	public static FastScanner scan;
  	public static PrintWriter out;
  	public static void main(String[] args) throws Exception {
  		scan=new FastScanner(System.in);
  		out=new PrintWriter(System.out);
   
  //		int T=1;
  		int T=scan.nextInt();
  		while(T-->0) {
  
  			int n=scan.nextInt();
  			int[] a=new int[n];
  			for(int i=0;i<n;i++) a[i]=scan.nextInt();
  
  			int height=0;
  			for(int i=0;i<n;i++) {
  				if(i-1>=0&&a[i]==0&&a[i-1]==0) {
  					height=-1;
  					break;
  				} else if(i-1>=0&&a[i]==1&&a[i-1]==1) height+=5;
  				else if(a[i]==1) height++;
  			} out.println(height!=-1?height+1:-1);
  
  		} out.close();
  	}
  }
  
  
  
  class Pair {
  	int a,b;
  	Pair(int a,int b) {
  		this.a=a;
  		this.b=b;
  	}
  }
   
  class FastScanner {
  	private InputStream stream;
  	private byte[] buf=new byte[1024];
  	private int curChar;
  	private int numChars;
   
  	public FastScanner(InputStream stream) { this.stream=stream; }
   
  	int read() {
  		if(numChars==-1) throw new InputMismatchException();
  		if(curChar>=numChars) {
  			curChar=0;
  			try { numChars=stream.read(buf); }
  			catch(IOException e) { throw new InputMismatchException(); }
  			if(numChars<=0) return -1;
  		} return buf[curChar++];
  	}
   
  	boolean isSpaceChar(int c) { return c==' '||c=='\n'||c=='\r'||c=='\t'||c==-1; }
   
  	boolean isEndline(int c) { return c=='\n'||c=='\r'||c==-1; }
   
  	int nextInt() { return Integer.parseInt(next()); }
  
  	long nextLong() { return Long.parseLong(next()); }
   
  	double nextDouble() { return Double.parseDouble(next()); }
   
  	String next() {
  		int c=read();
  		while(isSpaceChar(c)) c=read();
  		StringBuilder res=new StringBuilder();
  		do {
  			res.appendCodePoint(c);
  			c=read();
  		} while(!isSpaceChar(c));
  		return res.toString();
  	}
   
  	String nextLine() {
  		int c=read();
  		while(isEndline(c)) c=read();
  		StringBuilder res=new StringBuilder();
  		do {
  			res.appendCodePoint(c);
  			c=read();
  		} while(!isEndline(c));
  		return res.toString();
  	}
  }