만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

축구 팀

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

요약
1부터 9까지 숫자의 개수와 무제한의 0이 주어질 때, 모든 숫자를 사용해 만들 수 있는 11의 배수 중 가장 작은 수의 자릿수를 구합니다.
난이도

보통10점 중 6점

유형
정수론, 동적 계획법
정답자
아직 제출이 없습니다

문제

내 아이가 가장 좋아하는 과목은 수학이다. 지금은 나눗셈을 배우고 있으며, 선생님은 짝수는 2로 나누어떨어지고 각 자리 숫자의 합이 3의 배수인 수는 3으로 나누어떨어진다고 가르쳐 주셨다.

운동장에서 축구 팀을 나누다가 11로 나누는 방법에 관심을 갖게 되었고, 어떤 수가 11로 나누어떨어지는지 쉽게 확인하는 규칙이 있는지 궁금해했다. 예를 들어 0부터 9까지의 숫자를 한 줄로 배열해 수를 만들면, 그중 어떤 수가 11로 나누어떨어질까?

아이는 숫자 1을 d1d_1개, 숫자 2를 d2d_2개, 이런 식으로 숫자 9를 d9d_9개 가지고 시작하기로 했다. 이 숫자들을 모두 사용하고 0을 원하는 만큼 더해 만들 수 있는 11의 배수 중 가장 작은 수를 구하려 한다. 그 수의 자릿수를 구해 달라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이후 TT개의 줄에는 각각 정수 9개 d1,…,d9d_1, \ldots, d_9가 주어진다.

출력

각 테스트 케이스에 대해 답을 한 줄에 출력한다. 이 방법으로 11의 배수를 만들 수 없으면 -1을 출력한다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤d1+⋯+d9≤1001 \le d_1 + \cdots + d_9 \le 100

힌트

첫 번째 경우에는 11을 만들 수 있고, 이 수는 2자리이다.

두 번째 경우에는 209를 만들 수 있고, 이 수는 11로 나누어떨어지며 3자리이다.

예제1

  1. 예제 1

    입력
    2
    2 0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 1
    
    예상 출력
    2
    3