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.IOException;
  import java.io.InputStream;
  import java.util.InputMismatchException;
  
  public class Life_Of_A_Flower {
  
  	public static void main(String[] args) {
  		InputReader reader = new InputReader(System.in);
  		int t = reader.nextInt();
  		StringBuilder out = new StringBuilder();
  		for (int i = 0; i < t; i++) {
  			int n = reader.nextInt();
  			int count = 1;
  			int countZero = 0;
  			boolean check = false;
  			int oldInput = 0;
  			for (int j = 0; j < n; j++) {
  				int input = reader.nextInt();
  				if (input == 1 && oldInput == 1) {
  					count += 5;
  					continue;
  				}
  				if (input == 0) {
  					countZero++;
  				} else {
  					countZero = 0;
  					count++;
  				}
  				if (countZero >= 2) {
  					check = true;
  				}
  				oldInput = input;
  			}
  			if (check) {
  				count = -1;
  			}
  			out.append(count).append("\n");
  		}
  		System.out.println(out);
  	}
  
  	static class InputReader {
  		public int bufferLength = 0, bufferPointer = 0;
  		public InputStream is;
  		private byte[] inputBuffer = new byte[1 << 20];
  
  		public InputReader(InputStream stream) {
  			try {
  
  				inputBuffer = new byte[2 << 23];
  				bufferLength = 0;
  				bufferPointer = 0;
  				is = stream;
  				bufferLength = is.read(inputBuffer);
  			} catch (Exception ignored) {
  			}
  		}
  
  		public boolean hasNext() throws IOException {
  			if (skip() >= 0) {
  				bufferPointer--;
  				return true;
  			}
  			return false;
  		}
  
  		public String nextLine() throws IOException {
  			int b = skip();
  			StringBuilder sb = new StringBuilder();
  			while (!isSpaceChar(b) && b != ' ') { // when nextLine, ()
  				sb.appendCodePoint(b);
  				b = readByte();
  			}
  			return sb.toString();
  		}
  
  		public String next() {
  			int b = skip();
  			StringBuilder sb = new StringBuilder();
  			while (!(isSpaceChar(b))) { // when nextLine, (isSpaceChar(b) && b != ' ')
  				sb.appendCodePoint(b);
  				b = readByte();
  			}
  			return sb.toString();
  		}
  
  		private int readByte() {
  			if (bufferLength == -1)
  				throw new InputMismatchException();
  			if (bufferPointer >= bufferLength) {
  				return -1;
  			}
  			return inputBuffer[bufferPointer++];
  		}
  
  		private boolean isSpaceChar(int c) {
  			return !(c >= 33 && c <= 126);
  		}
  
  		private double nextDouble() {
  			return Double.parseDouble(next());
  		}
  
  		public Character nextChar() {
  			return skip() >= 0 ? (char) skip() : null;
  		}
  
  		private int skip() {
  			int b;
  			while ((b = readByte()) != -1 && isSpaceChar(b))
  				;
  			return b;
  		}
  
  		public int nextInt() {
  			int num = 0, b;
  			boolean minus = false;
  			while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
  				;
  			if (b == '-') {
  				minus = true;
  				b = readByte();
  			}
  
  			while (true) {
  				if (b >= '0' && b <= '9') {
  					num = num * 10 + (b - '0');
  				} else {
  					return minus ? -num : num;
  				}
  				b = readByte();
  			}
  		}
  
  		public long nextLong() {
  			long num = 0;
  			int b;
  			boolean minus = false;
  			while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
  				;
  			if (b == '-') {
  				minus = true;
  				b = readByte();
  			}
  
  			while (true) {
  				if (b >= '0' && b <= '9') {
  					num = num * 10 + (b - '0');
  				} else {
  					return minus ? -num : num;
  				}
  				b = readByte();
  			}
  		}
  	}
  }
  