Baka bullar | 프로그래밍의 벗 PivotOJ
PivotOJ

Baka bullar

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2021 — lagerBOJ 26959

문제

Du har bakat bullar och lagt dem på en lång rad. Totalt har du NN bullar, där den ii:te finns på xx-koordinat xix_i. Du skulle vilja samla ihop bullarna så att de ligger bredvid varandra, alltså på koordinater a,a+1,a+2,,a+N1a, a+1, a+2, \dots, a+N-1 för något aa. Men bullarna är väldigt varma och kan endast hanteras med hjälp av en spade med bredd DD. I ett drag kan du välja ett intervall av längd DD och vända på alla bullar i det intervallet. Mer specifikt kan du välja ett intervall på formen [L,L+D1][L, L+D-1]. En bulle vars xx-koordinat uppfyller LxiL+D1L \leq x_i \leq L+D-1 flyttas då till xx-koordinat L+D1(xiL)L + D - 1 - (x_i - L).

Du får givet de NN bullarnas positioner och talet DD. Din uppgift är att hitta en sekvens av drag så att bullarna hamnar bredvid varandra. Du får använda högst 10510^5 drag.

입력

Den första raden innehåller två heltal NN och DD (2N,D2002 \leq N, D \leq 200).

Den andra raden innehåller NN heltal xix_i (1xi2001 \leq x_i \leq 200). Alla talen xix_i är olika.

출력

Om det inte finns någon lösning, skriv ut "-1".

Annars, skriv först ut en rad med heltalet MM (0M1050 \leq M \leq 10^5), antalet drag. Skriv därefter ut MM rader, där den ii:te innehåller heltalet LiL_i.

Detta innebär att det ii:te draget vänder på intervallet [Li,Li+D1][L_i, L_i + D - 1]. Talet LiL_i får vara nästan\footnote{Heltalet måste uppfylla 2147483648Li2147483647-2147483648 \leq L_i \leq 2147483647, annars får du fel svar.} vilket heltal som helst, inklusive negativt. Lösningen räknas som korrekt om bullarna ligger bredvid varandra efter att samtliga drag utförts. Ordningen på bullarna spelar ingen roll.

예제

예제 1

입력
4 4
1 7 2 8
출력
2
1
5

예제 2

입력
4 5
1 2 3 5
출력
-1
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.