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.io.*;
  import java.util.*;
  
  public class Main{
      static void main() throws Exception{
          int n=sc.nextInt(),prev=-1;
          int ans=1;
          boolean die=false;
          for(int i=0;i<n;i++){
              int cur=sc.nextInt();
              if(cur==1){
                    ans++;
                  if(prev==1){
                      ans+=4;
                  }
              }
              else{
                  if(prev==0){
                      die=true;
                  }
              }
              prev=cur;
          }
          pw.println(die?(-1):ans);
      }
      public static void main(String[] args) throws Exception{
          sc=new MScanner(System.in);
  //		sc=new MScanner(" .in");
          pw = new PrintWriter(System.out);
          int tc=1;
  		tc=sc.nextInt();
          for(curt=1;curt<=tc;curt++) {
  //			pw.printf("Case #%d: ", curt);
              main();
          }
  
          pw.flush();
      }
      static int curt;
      static PrintWriter pw;
      static MScanner sc;
      static class MScanner {
          StringTokenizer st;
          BufferedReader br;
          public MScanner(InputStream system) {
              br = new BufferedReader(new InputStreamReader(system));
          }
  
          public MScanner(String file) throws Exception {
              br = new BufferedReader(new FileReader(file));
          }
  
          public String next() throws IOException {
              while (st == null || !st.hasMoreTokens())
                  st = new StringTokenizer(br.readLine());
              return st.nextToken();
          }
          public int[] intArr(int n) throws IOException {
              int[]in=new int[n];for(int i=0;i<n;i++)in[i]=nextInt();
              return in;
          }
          public long[] longArr(int n) throws IOException {
              long[]in=new long[n];for(int i=0;i<n;i++)in[i]=nextLong();
              return in;
          }
          public int[] intSortedArr(int n) throws IOException {
              int[]in=new int[n];for(int i=0;i<n;i++)in[i]=nextInt();
              shuffle(in);
              Arrays.sort(in);
              return in;
          }
          public long[] longSortedArr(int n) throws IOException {
              long[]in=new long[n];for(int i=0;i<n;i++)in[i]=nextLong();
              shuffle(in);
              Arrays.sort(in);
              return in;
          }
          public Integer[] IntegerArr(int n) throws IOException {
              Integer[]in=new Integer[n];for(int i=0;i<n;i++)in[i]=nextInt();
              return in;
          }
          public Long[] LongArr(int n) throws IOException {
              Long[]in=new Long[n];for(int i=0;i<n;i++)in[i]=nextLong();
              return in;
          }
          public String nextLine() throws IOException {
              return br.readLine();
          }
  
          public int nextInt() throws IOException {
              return Integer.parseInt(next());
          }
  
          public double nextDouble() throws IOException {
              return Double.parseDouble(next());
          }
  
          public char nextChar() throws IOException {
              return next().charAt(0);
          }
  
          public long nextLong() throws IOException {
              return Long.parseLong(next());
          }
  
          public boolean ready() throws IOException {
              return br.ready();
          }
  
          public void waitForInput() throws InterruptedException {
              Thread.sleep(3000);
          }
  
      }
      static void dbg(int[]in) {
          System.out.println(Arrays.toString(in));
      }
      static void dbg(long[]in) {
          System.out.println(Arrays.toString(in));
      }
      static void sort(int[]in) {
          shuffle(in);
          Arrays.sort(in);
      }
      static void sort(long[]in) {
          shuffle(in);
          Arrays.sort(in);
      }
      static void shuffle(int[]in) {
          for(int i=0;i<in.length;i++) {
              int idx=(int)(Math.random()*in.length);
              int tmp=in[i];
              in[i]=in[idx];
              in[idx]=tmp;
          }
      }
      static void shuffle(long[]in) {
          for(int i=0;i<in.length;i++) {
              int idx=(int)(Math.random()*in.length);
              long tmp=in[i];
              in[i]=in[idx];
              in[idx]=tmp;
          }
      }
  }