QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100

#11366. Tomografia SLA

Statistics

Stereolitografia (SLA) to technika druku 3D polegająca na utwardzaniu ciekłego materiału w stały obiekt warstwa po warstwie za pomocą lasera. W tym zadaniu rozważymy dwuwymiarowe uproszczenie techniki SLA, w którym projekt drukowanego obiektu można przedstawić jako prostokątną siatkę znaków # oraz ., gdzie # oznacza komórkę siatki zajętą przez obiekt, a . oznacza pustą przestrzeń. Przykładowo, oto projekt o wymiarach $4 \times 8$:

..#.....
..#..#..
#.#.##..
#.#####.

Projekt nie musi składać się z jednego spójnego kawałka, ale z wyjątkiem komórek # w dolnym wierszu projektu, każda komórka # musi być podparta przez inną komórkę # znajdującą się bezpośrednio pod nią.

Drukowanie obiektu metodą SLA odbywa się warstwa po warstwie, począwszy od dolnego wiersza. Najpierw wszystkie komórki w wierszu są zalewane ciekłą żywicą światłoczułą. Następnie laser omiata wiersz, utwardzając żywicę we wszystkich komórkach # w ciało stałe i pomijając wszystkie komórki .. Potem pozostała ciecz na lewo od skrajnie lewego znaku # oraz na prawo od skrajnie prawego znaku # odpływa. Pozostała ciecz zostaje uwięziona. (Jeśli w wierszu nie ma żadnych komórek # — co może się zdarzyć tylko w wierszach blisko góry projektu, po całkowitym wydrukowaniu obiektu — cała ciecz odpływa z wiersza.) Proces ten powtarza się następnie dla każdego kolejnego wiersza. Dla powyższego projektu, po zakończeniu drukowania, żywica pozostaje uwięziona we wszystkich komórkach oznaczonych poniżej znakiem ~:

..#.....
..#~~#..
#~#~##..
#~#####.

Podczas ręcznego odsysania pozostałej żywicy z obiektu zaczynasz się zastanawiać: jak dużą część oryginalnego projektu można odtworzyć, wiedząc jedynie, ile ciekłej żywicy pozostało w każdym wierszu projektu po wydrukowaniu? Dla powyższego projektu ilość pozostałej żywicy w poszczególnych wierszach (zaczynając od góry projektu) wynosi $0, 2, 2, 1$. Inne projekty również mają taki sam „odcisk palca” pozostałej żywicy; na przykład:

....
#..#
#..#
#.##

Mając daną listę określającą, ile komórek ciekłej żywicy pozostało w każdym wierszu (zaczynając od górnego wiersza), wypisz szerokość najwęższego projektu obiektu, którego wiersze zawierałyby takie ilości ciekłej żywicy po wydrukowaniu. Jeśli taki projekt nie istnieje, wypisz impossible.

Wejście

Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą $N$ ($1 \le N \le 10^5$), oznaczającą liczbę wierszy w projekcie obiektu. Dalej następuje $N$ wierszy, z których każdy zawiera jedną liczbę całkowitą $x$ ($0 \le x \le 10^9$), oznaczającą liczbę komórek pozostałej ciekłej żywicy w każdym wierszu pożądanego projektu obiektu (w kolejności od góry do dołu).

Co najmniej jeden wiersz będzie zawierał co najmniej jedną komórkę pozostałej ciekłej żywicy.

Wyjście

Wypisz szerokość (liczbę kolumn) najwęższego projektu obiektu, w którym liczba komórek pozostałej ciekłej żywicy w każdym wierszu zgadza się z danymi wejściowymi. („Najwęższy” oznacza mający najmniejszą możliwą liczbę kolumn). Jeśli taki projekt nie istnieje, wypisz zamiast tego impossible.

Przykład

Wejście 1

4
0
2
2
1

Wyjście 1

4

Wejście 2

3
4
0
4

Wyjście 2

11

Uwagi

Pierwszy przykład wejściowy odpowiada przykładowi opisanemu powyżej. Jednym z najwęższych możliwych projektów dla drugiego przykładu wejściowego jest:

#....#.....
######.....
######....#

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.