Increasing Sequence (Codeforces 1882A)
Tags: Greedy, greedy

You are given a sequence $$$a_{1}, a_{2}, \ldots, a_{n}$$$. A sequence $$$b_{1}, b_{2}, \ldots, b_{n}$$$ is called good, if it satisfies all of the following conditions:   $$$b_{i}$$$ is a positive integer for $$$i = 1, 2, \ldots, n$$$;  $$$b_{i} \neq a_{i}$$$ for $$$i = 1, 2, \ldots, n$$$;  $$$b_{1} < b_{2} < \ldots < b_{n}$$$.  Find the minimum value of $$$b_{n}$$$ among all good sequences $$$b_{1}, b_{2}, \ldots, b_{n}$$$.

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). The description of the test cases follows.The first line of each test case contains a single integer $$$n$$$ ($$$1 \le n \le 100$$$).The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^{9}$$$).

Output: For each test case, print a single integer — the minimum value of $$$b_{n}$$$ among all good sequences $$$b$$$.

Note: In the first test case, $$$b = [2, 4, 5, 7, 8]$$$ is a good sequence. It can be proved that there is no good $$$b$$$ with $$$b_{5} < 8$$$.In the second test case, $$$b = [1, 2, 3, 4]$$$ is an optimal good sequence.In the third test case, $$$b = [2]$$$ is an optimal good sequence.

Sample Inputs:
3
5
1 3 2 6 7
4
2 3 4 5
1
1

Sample Outputs:
8
4
2

Solution (Python):
t = int(input())
for q in range(t):
    n = int(input())
    a = list(map(int, input().split(' ')))
    c = 0
    for i in range(len(a)):
        c += 1
        if a[i] == c:
            c += 1
    print(c)

Solution (Python):
for s in [*open(0)][2::2]:
    i = 0
    for x in s.split():
        i += 1
        i += i == int(x)
    print(i)

Solution (Python):
import sys
import math as m
input = sys.stdin.readline

def inp():
    return int(input())

def inlt():
    return list(map(int, input().split()))

def insr():
    s = input()
    return s.strip()

def invr():
    return list(map(int, input().split()))

def doItAll(a):
    b = [1] * len(a)
    if a[0] == 1:
        b[0] = 2
    for i in range(1, len(a)):
        b[i] = b[i - 1] + 1
        if a[i] == b[i]:
            b[i] += 1
    return b[len(b) - 1]
t = inp()
for _ in range(t):
    n = inp()
    a = invr()
    print(doItAll(a))