Šetnja | 프로그래밍의 벗 PivotOJ
PivotOJ

Šetnja

시간 제한: 1000ms메모리 제한: 1024MB출처: CHC 2019 Junior Croatian Olympiad in InformaticsBOJ 25159

문제

U ulici jorgovana nalazi se NN kuća poredanih slijeva nadesno označenih redom prirodnim brojevima od 11 do NN. Mirko se trenutno nalazi kod kuće s oznakom XX i želi doći do kuće s oznakom YY. Smije se kretati lijevo i desno, odnosno kad se nalazi kod neke kuće može otići do jedne od najviše dviju susjednih kuća.

Budući da voli duge noćne šetnje po mjesečini i pod zvjezdanim nebom, te zavirivanje u tuđa dvorišta odlučio je šetati od kuće XX do kuće YY na način da kuću s oznakom i posjeti točno AiA_i puta.

Mirku baš i ne ide snalaženje u prostoru pa te moli da osmisliš takvu šetnju umjesto njega. I šetnje koje ne posjete svaku kuću traženi broj puta donijet će neki broj bodova pa pozorno promotri sekciju BODOVANJE.

입력

U prvom retku redom nalaze se prirodni brojevi NN (1 ≤ N ≤ 100\,000), XX (1 ≤ X ≤ N) i YY (1 ≤ Y ≤ N), brojevi iz teksta zadatka.

U drugom retku nalazi se niz od NN prirodnih brojeva AiA_i (1 ≤ A_i ≤ 100\,000), niz iz teksta zadatka. Zbroj A1+A2++AnA_1 + A_2+ \dots + A_n bit će manji ili jednak 100000100\,000.

출력

U prvom retku ispiši broj KK (1 ≤ K≤ 200\,000), duljinu tvoje predložene šetnje.

U drugom retku ispiši niz od KK prirodnih brojeva BkB_k (1 ≤ B_k ≤ N, k=1Kk=1\dots K) koji opisuju Mirkovu šetnju, tj. redom one kuće koje će Mirko posjetiti.

Da bi ispis bio valjan mora vrijediti:

  • B1=XB_1 = X jer mora krenuti od XX-te kuće;
  • BK=YB_K = Y jer mora završiti kod YY-te kuće;
  • BiBi1=1|B_i - B_{i-1}| = 1 za i=2,,Ki=2,\dots , K jer se u svakom koraku smije i mora pomaknuti do susjedne kuće.

Ulazni podaci bit će takvi da rješenje postoji.

힌트

Opis trećeg primjera: Mirko će redom posjetiti kuće 3, 4, 5, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4. Na taj način krenut će od treće i završit u četvrtoj kao što je i želio. Prvu kuću posjetit će jednom, drugu dva puta, treću tri puta, četvrtu četiri puta, petu tri puta i šestu jednom.

예제

예제 1

입력
3 2 2
1 3 1
출력
5
2 3 2 1 2

예제 2

입력
5 1 5
1 1 1 1 1
출력
5
1 2 3 4 5

예제 3

입력
6 3 4
1 2 3 4 3 1
출력
14
3 4 5 6 5 4 3 2 1 2 3 4 5 4
코드를 제출하려면 로그인하세요.