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

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

바이티의 디스플레이

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

요약
일곱 세그먼트 디스플레이의 자리 순서를 바꾸고 세그먼트를 최대 n번 켜거나 꺼서 가장 큰 l자리 수를 만든다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

바이트만은 세 번째 생일을 맞은 아들 바이티에게 디스플레이를 선물했다. 이 디스플레이는 한 줄로 늘어선 소자들로 이루어지며, 각 소자는 일곱 개의 획으로 구성된다.

소자 하나의 모습. 길쭉한 육각형이 각각의 획이다.

각 획을 켜거나 꺼서 아래 그림처럼 소자에 숫자를 나타낼 수 있다. 그 밖의 조합은 어떤 숫자도 나타내지 않는다.

0부터 9까지의 숫자. 검은 획은 켜진 상태, 흰 획은 꺼진 상태를 뜻한다.

바이티가 문제를 냈다. 다음 두 가지가 허용될 때 디스플레이에 나타낼 수 있는 가장 큰 수는 무엇일까?

  • 임의의 두 소자를 원하는 만큼 여러 번 맞바꾼다.
  • 획을 켜거나 끄는 조작을 통틀어 최대 nn번 한다.

마지막에는 디스플레이가 올바른 수를 나타내야 한다(중간 과정에서는 그렇지 않아도 된다). 또한 소자는 통째로만 맞바꿀 수 있다. 바이트만이 이 수수께끼를 풀 수 있도록 도와주자.

입력

첫 줄에 테스트 케이스의 수를 나타내는 정수 kk (1≤k≤501 \le k \le 50)가 주어진다. 이어지는 kk개의 줄에는 각각 한 테스트 케이스가 세 정수 nn, ll, aa (0≤n≤2000000 \le n \le 200000, 1≤l≤1000001 \le l \le 100000)로 주어진다. nn은 획을 켜거나 끄는 조작을 할 수 있는 최대 횟수이고, aa는 현재 디스플레이 상태를 정확히 ll자리의 숫자로 나타낸 것이다(맨 앞의 0도 허용된다).

출력

각 테스트 케이스마다 규칙에 따라 얻을 수 있는 가장 큰 수를 정확히 ll자리(맨 앞의 0 허용)의 정수로 한 줄에 출력한다.

설명

디스플레이에 10이 표시되어 있고 조작을 한 번 할 수 있다고 하자. 먼저 두 소자를 맞바꿔 01을 만든 뒤, 왼쪽 소자의 가운데 가로 획을 켜서 0을 8로 바꾼다. 그러면 디스플레이에는 81이 나타나며, 이것이 얻을 수 있는 가장 큰 수이다.

처음 상태와, 소자를 맞바꾸고 가운데 가로 획을 켠 뒤의 상태.

예제1

  1. 예제 1

    입력
    1
    1 2 10
    
    예상 출력
    81