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

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

Прыжки по камням

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

요약
주디가 0에서 n까지 1m와 2m 점프만으로 주어진 돌 위에 착지하며 이동한다. 최소 점프 수를 구하고 그중 사전순으로 가장 작은 1과 2의 경로를 출력하며, 불가능하면 -1을 출력한다.
난이도

보통10점 중 4점

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

문제

Джуди Хоппс бежит на очень важную встречу с Ником, и тут как назло перед ней оказалось огромное озеро. Обходить его времени нет, требуется какой-то другой план. К счастью для Джуди, на поверхности озера виднеются несколько камней, по которым она сможет прыгать.

Для простоты представим озеро в виде координатной прямой, на которой Джуди стоит в точке 0, а конец озера находится в точке с координатой nn. Несмотря на то, что Джуди --- зайчиха и хороша в прыжках, прыгать она может только на 1 и 2 метра вперед соответственно (то есть из точки с координатой xx она может попасть в точки с координатами x+1x+1 и x+2x+2). Зная координаты камней, Джуди хочет найти минимальное количество прыжков, которое ей нужно совершить, чтобы добраться из точки с координатой 0 в точку с координатой nn. Однако ее также с детства учили делать все максимально оптимально, поэтому она также хочет из всех путей с минимальным количеством прыжком выбрать лексикографически минимальный. Каждый прыжок описывается последовательностью чисел 1 и 2 (ii-е число соответствует длине ii-го прыжка).

Помогите Джуди как можно быстрее решить эту задачу --- хоть она и дама, очень сильно опаздывать на встречу все-таки некрасиво.

입력

В первой строке входного файла находятся два числа nn, kk (1≤n≤105;0≤k<n1 \le n \le 10^5; 0 \le k < n) --- координата, в которую Джуди надо попасть, и количество камней на озере соответственно.

В следующей строке через пробел находятся kk чисел x_ix\_i (1≤x_i≤n1 \le x\_i \le n) --- координаты камней. Гарантируется, что для всех x_1>0x\_1 > 0, а также для всех i>1i > 1 верно, что x_i>x_i−1x\_i > x\_{i-1}.

출력

В первой строке выходного файла выведите целое число --- минимальное количество прыжков, которое требуется, чтобы добраться из координаты 0 в координату nn. Во второй строке выведите оптимальный путь --- последовательность 1 и 2 без пробелов.

Путь должен быть минимальным по длине, а из всех таких, лексикографически минимальным.

Если Джуди не удастся никак допрыгнуть до точки с координатой nn, то есть придется обходить озеро, в этом случае в единственной строке выходного файла выведите <<-1>> (без кавычек).

힌트

Последовательность чисел AA является лексикографически меньше последовательности BB, если A≠BA \ne B и существует такое 0≤k≤∣A∣0 \le k \le |A|, что A_0=B_0,A_1=B_1,…,A_k=B_kA\_0 = B\_0, A\_1 = B\_1, \ldots, A\_k = B\_k и A_k+1<B_k+1A\_{k+1} < B\_{k+1}.

예제2

  1. 예제 1

    입력
    5 3
    2 3 4
    
    예상 출력
    3
    212
    
  2. 예제 2

    입력
    7 3
    2 3 4
    
    예상 출력
    -1