Baka bullar
시간 제한1초메모리 제한1024 MB
서로 다른 위치 N개와 폭 D가 주어질 때, 구간 뒤집기를 최대 100000번 사용해 모든 항목을 연속한 N개 좌표에 모으는 방법을 찾거나 불가능하다고 판정하는 문제입니다.
문제
Du har bakat bullar och lagt dem på en lång rad. Totalt har du bullar, där den :te finns på -koordinat . Du skulle vilja samla ihop bullarna så att de ligger bredvid varandra, alltså på koordinater för något . Men bullarna är väldigt varma och kan endast hanteras med hjälp av en spade med bredd . I ett drag kan du välja ett intervall av längd och vända på alla bullar i det intervallet. Mer specifikt kan du välja ett intervall på formen . En bulle vars -koordinat uppfyller flyttas då till -koordinat .
Du får givet de bullarnas positioner och talet . Din uppgift är att hitta en sekvens av drag så att bullarna hamnar bredvid varandra. Du får använda högst drag.
입력
Den första raden innehåller två heltal och ().
Den andra raden innehåller heltal (). Alla talen är olika.
출력
Om det inte finns någon lösning, skriv ut "-1".
Annars, skriv först ut en rad med heltalet (), antalet drag. Skriv därefter ut rader, där den :te innehåller heltalet .
Detta innebär att det :te draget vänder på intervallet . Talet får vara nästan\footnote{Heltalet måste uppfylla , 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.