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

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

비밀 코드

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

요약
0부터 9까지 각 숫자의 개수가 주어질 때, 연속한 세 자리가 만드는 수가 모두 3의 배수가 되도록 숫자를 골라 만들 수 있는 가장 큰 수를 구한다. 앞자리에 0이 오면 안 된다.
난이도

보통10점 중 7점

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

문제

Bogdan은 수수께끼와 퍼즐을 좋아한다. 그는 친구 Anton에게 비밀 코드를 만들어 달라고 부탁했고, Bogdan이 그 코드를 해독하기로 했다.

Anton은 앞에 불필요한 0이 없는 음이 아닌 정수를 비밀 코드로 쓰기로 했다. 코드는 다음 조건을 만족해야 한다. 코드의 연속한 세 자리 숫자를 세 자리 정수로 보았을 때, 그 수는 3으로 나누어떨어진다.

Anton은 자신의 비밀 코드에 들어 있는 모든 숫자와 그 밖의 숫자 몇 개를 Bogdan에게 알려 주었다. 그리고 이 숫자들로 만들 수 있는, 위 조건을 만족하는 가장 큰 수가 비밀 코드라고 주장한다.

Bogdan이 비밀 코드를 알아내도록 도와주자.

입력

입력은 10개의 정수 c_0,…,c_9c\_0, \ldots, c\_9를 포함한다. 여기서 c_ic\_i는 Anton이 Bogdan에게 알려 준 숫자 ii의 개수이다(0≤c_i≤100 0000 \le c\_i \le 100\,000). c_ic\_i의 합은 양수이며 100 000100\,000을 넘지 않는다.

출력

이 숫자들로 만들 수 있는 가장 큰 정수를 출력한다. 이 정수는 연속한 세 자리 숫자로 이루어진 수가 3으로 나누어떨어지는 조건을 만족해야 한다. 주어진 숫자를 모두 사용할 필요는 없다. 한 자리 또는 두 자리 수는 연속한 세 자리 숫자가 없으므로 이 조건을 자동으로 만족한다. 답에는 앞에 불필요한 0이 있어서는 안 된다. 첫 번째 자리가 00일 수 있는 것은 수가 0인 경우뿐이며, 이때 0은 유일한 자리여야 한다.

예제2

  1. 예제 1

    입력
    1 2 3 0 0 0 0 0 0 0
    
    예상 출력
    21021
    
  2. 예제 2

    입력
    1 1 1 1 1 1 1 1 1 1
    
    예상 출력
    9876543210