Dato je ne jedno, već dva skladišta. Jedno je doduše prazno ali dobrodođe u vremenskim neprilikama kakve samo što nisu.
Natalija, iskusni vozač viljuškara, je sama sebi smislila zadatak da sortira sve kutije u punom skladištu, i ne samo punom već i jako tesnom. Kutije se prostiru u nizu počev od prednjih vrata skladišta pa sve do zadnjeg vrata skladišta i numerisane su brojevima . Sve što je u njenoj moći je da ulaskom na prednja vrata svojim viljuškarom uzme prvu kutiju ili ulaskom na zadnja vrata uzme poslednju kutiju. Nakon toga ona može prebaciti tu kutiju u bilo koje od 2 skladišta sa bilo prednje bilo zadnje strane (svakog trenutka se očekuje vremenska nepogoda pa ne sme rizikovati da ostavi po koju napolju).
Formalnije, ako su se zadesile u nekom trenutku kutije u prvom skladištu i označimo ih sa , i kutije u drugom skladištu koje označimo sa (na početku je jer je drugo skladište prazno), Natalija može uzeti bilo koju od kutije i premestiti je na početak ili kraj niza , ili na početak ili kraj niza .
Kao što smo rekli, Natalija želi da sortira sve kutije koje su inicijalno u prvom skladištu po njihovoj numeraciji neopadajuće, koristeći se gore opisanom pravilom u svakom koraku. Na kraju razvrstavanja, sve kutije se moraju naći u prvom skladištu, dok će drugo, nažalost, opet ostati prazno.
Svaka pomoć u rešavanju joj je i više nego dobrodošla.
Opis ulaza
U prvoj liniji standardnog ulaza nalazi se broj () koji označava broj kutija koje se na početku nalaze u prvom skladištu. U drugoj liniji nalazi se prirodnih brojeva razdvojenih razmakom , gde označava broj koji se nalazi na -toj kutiji.
Opis izlaza
U prvoj liniji ispisati broj premeštanja koje će Natalija izvršiti. U svakoj od narednih linija ispisati opis -tog premeštanja u formatu:
gde su broj početnog skladišta (odakle uzima kutiju) i (broj skladišta gde spušta kutiju) iz skupa . Brojem se obeležava prvo skladište (na početku puno), a brojem se obeležava drugo skladište (na početku prazno). i označavaju sa koje strane se prilazi skladištu viljuškarem. Ove vrednosti su iz skupa , gde označava prilaz sa prednje strane, a prilaz sa zadnje.
Da bi se dobili poeni na određenom test primeru potrebno je da broj premeštanja (u suprotnom se dobija na tom test primeru). Pogledati vrednosti ispod u delu sa podzadacima. Takođe, potrebno je da posle ispisanog niza komandi, sve kutije u prvom skladištu budu sortirane i da drugo skladište ostane prazno. Svaka komanda mora predstavaljati validno premeštanje (ne sme se uzeti kutija iz nekog skladišta ako je u tom trenutku prazno). Isto, ako bilo koja promenljiva , , ili nije iz gore pomenutih skupova, dobija se 0 poena na tom test primeru.
Primeri
Standardni ulaz | Standardni izlaz | |
---|---|---|
4 2 1 2 5 |
4 0 P 1 P 0 Z 1 Z 1 P 0 Z 1 P 0 Z |
Objašnjenje prvog test primera:
Korak | Skladište | Pojašnjenje | ||
---|---|---|---|---|
0 |
[2 1 2 5] [] |
2 skladišta i inicijalni raspored kutija u njima | ||
1 |
[1 2 5] [2] |
Prebacujemo iz 0. skladišta prednju kutiju u 1. skladište na prednja vrata. | ||
2 |
[1 2] [2 5] |
Prebacujemo iz 0. skladišta zadnju kutiju u 1. skladište na zadnja vrata. | ||
3 |
[1 2 2] [5] |
Prebacujemo iz 1. skladišta prednju kutiju u 0. skladište na zadnja vrata. | ||
4 |
[1 2 2 5] [] |
Prebacujemo iz 1. skladišta prednju kutiju u 0. skladište na zadnja vrata. |
Kao što se da primetiti, brojevi u skladištu su sada sortirani u koraka.
Ograničenja, bodovanje i podzadaci
,
Test primeri su podeljeni u 4 disjunktne grupe:
- U test primerima vrednim 10 poena: ,
- U test primerima vrednim 20 poena:
- U test primerima vrednim 40 poena:
- U test primerima vrednim 30 poena:
Comments