아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

SubsetMex

시간 제한1초메모리 제한1024 MB

요약
여러 집합의 원소별 개수 f0..fn-1이 주어질 때, 서로 다른 부분집합의 원소를 하나씩 지우고 mex를 넣는 연산을 반복해 n을 집합에 추가하는 최소 연산 횟수를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

A multiset is a collection of elements similar to a set, where elements can repeat multiple times. For example, the following is a multiset:

{0, 0, 1, 2, 2, 5, 5, 5, 8}

Given a multiset S defined on non-negative integers, and a target non-negative integer value n such that n does not belong to S, your goal is to insert n into S by using the following 3-step operation, repeatedly:

  1. Choose a (possibly empty) subset T of S. Here, T is a set of distinct numbers that appear in S.
  2. Erase elements of T from S. (Remove only one copy of each element.)
  3. Insert mex(T) into S, where mex(T) is the smallest non-negative integer that does not belong to T. The name mex stands for “minimum excluded” value.

Your goal is to find the minimum number of operations to perform so that n becomes part of S.

Since the size of S may be large, it will be given in the form of a list (f0, …, fn−1) of size n, where fi represents the number of times that the number i appears in S. (Recall that n is the integer we are trying to insert into S.)

입력

The first line contains a single integer t (1 ≤ t ≤ 200) — the number of test cases. Each two of the following lines describe a test case:

  • The first line of each test case contains a single integer n (1 ≤ n ≤ 50), representing the integer to be inserted into S.
  • The second line of each test case contains n integers f0, f1, …, fn−1 (0 ≤ fi ≤ 1016), representing the multiset S as mentioned above.

출력

For each test case, print a single line containing the minimum number of operations needed to satisfy the condition.

힌트

In the first example, initially, S = {1, 1, 1, 3, 3, 3} and our goal is to have 4 in S. We can do the following:

  1. choose T = {} then S becomes {0, 1, 1, 1, 3, 3, 3}
  2. choose T = {0, 1, 3} then S becomes {1, 1, 2, 3, 3}
  3. choose T = {1} then S becomes {0, 1, 2, 3, 3}
  4. choose T = {0, 1, 2, 3} then S becomes {3, 4}

예제1

  1. 예제 1

    입력
    2
    4
    0 3 0 3
    5
    4 1 0 2 0
    
    예상 출력
    4
    10