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

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

도도의 수학놀이

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

요약
0,1,2,5,6,8,9로만 이루어진 수열을 모두 이어붙이되 한 수를 두 번 쓸 수 있을 때, 이어붙인 수를 180도 회전하고 앞의 0을 지운 값이 최대가 되도록 만든다.
난이도

보통10점 중 6점

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

문제

길이가 N인 수열이 주어진다. 도도는 이 수열의 수를 이어붙여 180도 회전시켰을 때 가장 큰 수를 만들려고 한다. 각 숫자를 180도 회전시켰을 때 환원되는 숫자는 다음과 같다.

  • 00 -> 00
  • 11 -> 11
  • 22 -> 22
  • 55 -> 55
  • 66 -> 99
  • 88 -> 88
  • 99 -> 66

숫자 33, 44, 77이 포함되어있는 수는 입력으로 주어지지 않는다. 모든 수를 이어붙인 수를 뒤집었을 때, 불필요한 00들은 제거된다. 단 한 번, 한 수를 두 번 사용할 수 있다.

이어붙인 수 중 180도 회전시켰을 때 가장 큰 값을 갖게 되는 수를 구하는 프로그램을 작성해보자.

입력

첫째 줄에 정수 NN (1≤N≤100,000 1 \leq N \leq 100\\,000)이 주어진다.

둘째 줄에는 길이가 NN 인 수열 aa (1≤a_i ≤1,000,000 1 \leq a\_i \leq 1\\,000\\,000)가 주어진다.

출력

첫째 줄에 이어붙여 만든 수 중 180도 회전시켰을 때 가장 큰 값을 갖게 되는 수를 출력한다.

예제1

  1. 예제 1

    입력
    4
    1 6 8 9
    
    예상 출력
    19866