Šetnja
U ulici jorgovana nalazi se N kuća poredanih slijeva nadesno označenih redom prirodnim brojevima od 1 do N. Mirko se trenutno nalazi kod kuće s oznakom X i želi doći do kuće s oznakom Y. 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 X do kuće Y na način da kuću s oznakom i posjeti točno Ai 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.
Ulazni podaci
U prvom retku redom nalaze se prirodni brojevi N (1 ≤ N ≤ 100 000), X (1 ≤ X ≤ N) i Y (1 ≤ Y ≤ N), brojevi iz teksta zadatka.
U drugom retku nalazi se niz od N prirodnih brojeva Ai (1 ≤ Ai ≤ 100 000), niz iz teksta zadatka. Zbroj A1 + A2+ … + An bit će manji ili jednak 100 000.
Izlazni podaci
U prvom retku ispiši broj K (1 ≤ K ≤ 200 000), duljinu tvoje predložene šetnje.
U drugom retku ispiši niz od K prirodnih brojeva Bk (1 ≤ Bk ≤ 100 000, k=1..K) koji opisuju Mirkovu šetnju, tj. redom one kuće koje će Mirko posjetiti.
Da bi ispis bio valjan mora vrijediti:
- B1 = X jer mora krenuti od X-te kuće;
- BK = Y jer mora završiti kod Y-te kuće;
- |Bi - B(i-1)| = 1 za i=2,…, K jer se u svakom koraku smije i mora pomaknuti do susjedne kuće
Ulazni podaci bit će takvi da rješenje postoji.
Bodovanje
Broj bodova računa se na sljedeći način:
Svaki primjer zasebno nosi 4 boda.
Ako je K > 200 000 ili nije zadovoljen neki od ostalih kriterija iz sekcije IZLAZNI PODACI broj bodova na tom primjeru bit će 0.
Neka Vi označava broj prolazaka kraj i-te kuće u ispisanoj šetnji, tj. Vi je broj pojavljivanja broja i u ispisanom nizu B. Neka je P zbroj apsolutnih razlika pripadnih članova nizova A i V, tj. P = |A1 - V1| + |A2 - V2| + … + |An - Vn|.
Ako je P = 0, tj. ako je u ispisanoj šetnji svaka kuća posjećena traženi broj puta dobit ćete sva 4 boda.
Inače broj osvojenih bodova iznosi 3 ∗ √(1/P) zaokružen na dva decimalna mjesta.
Nadalje, u test podacima ukupno vrijednima 12 bodova, vrijedit će A1+ A2+ … + An ≤ 20.
U test podacima ukupno vrijednima dodatnih 8 bodova, vrijedit će A1+ A2+ … + An ≤ 35.
U test podacima ukupno vrijednima dodatnih 12 bodova, brojevi A1, A2,…, An bit će manji ili jednaki 2.
U test podacima ukupno vrijednima dodatnih 8 bodova, vrijedit će X = 1 i Y = N.
Probni primjeri
Ulaz
3 2 2
1 3 1
Izlaz
5
2 3 2 1 2
Ulaz
5 1 5
1 1 1 1 1
Izlaz
5
1 2 3 4 5
Ulaz
6 3 4
1 2 3 4 3 1
Izlaz
14
3 4 5 6 5 4 3 2 1 2 3 4 5 4
Opis trećeg probnog 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.
Comments