QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#11366. SLA-tomografi

الإحصائيات

Stereolitografi (SLA) är en 3D-utskriftsteknik för att härda flytande material till ett fast objekt ett lager i taget med hjälp av en laser. I det här problemet betraktar vi en 2D-förenkling av SLA där designen av objektet som skrivs ut kan representeras som ett rektangulärt rutnät av tecknen # och ., där # representerar en rutnätscell som upptas av objektet och . är tomt utrymme. Här är till exempel en $4 \times 8$-design:

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

En design behöver inte bestå av ett enda sammanhängande stycke, men med undantag för #-celler på den nedersta raden i designen måste varje #-cell stödjas av en annan #-cell direkt under den.

Utskrift av ett objekt med SLA sker lager för lager, med början från den nedersta raden. Först översvämmas alla celler i raden med ett flytande ljuskänsligt harts. Därefter sveper en laser över raden, härdar hartset i alla #-celler till fast form och hoppar över alla .-celler. Sedan rinner överbliven vätska till vänster om det # som är längst till vänster och till höger om det # som är längst till höger bort. Annan vätska förblir instängd. (Om det inte finns några #-celler i raden — vilket bara kan hända för rader nära toppen av designen, efter att objektet har skrivits ut helt — rinner all vätska bort från raden.) Denna process upprepas sedan för varje efterföljande rad. För designen ovan, efter att utskriften är klar, förblir harts instängt i alla celler som är markerade med ett ~-tecken nedan:

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

Medan du manuellt suger bort det överblivna hartset från objektet börjar du undra: hur mycket av den ursprungliga designen kan återskapas om man bara vet hur mycket flytande harts som finns kvar i varje rad av designen efter utskrift? För designen ovan är mängden överblivet harts i varje rad (med början från toppen av designen) $0, 2, 2, 1$. Andra designer har också samma fingeravtryck av överblivet harts; till exempel:

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

Givet en lista över hur många celler av flytande harts som finns kvar i varje rad (med början från den översta raden), skriv ut bredden på den smalaste objektdesignen vars rader skulle innehålla dessa mängder flytande harts efter utskrift. Om ingen sådan design existerar, skriv ut impossible.

Indata

Den första raden i indatan innehåller ett enda heltal $N$ ($1 \le N \le 10^5$), antalet rader i objektdesignen. Därefter följer $N$ rader som var och en innehåller ett enda heltal $x$ ($0 \le x \le 10^9$), antalet celler med överblivet flytande harts i varje rad av den önskade objektdesignen (i ordning uppifrån och ner).

Minst en rad kommer att ha minst en överbliven cell med flytande harts.

Utdata

Skriv ut bredden (antalet kolumner) i den smalaste objektdesignen vars antal celler med överblivet flytande harts i varje rad matchar indatan. ("Smalaste" betyder att den har minsta möjliga antal kolumner). Om ingen sådan design existerar, skriv ut impossible istället.

Exempel

Indata 1

4
0
2
2
1

Utdata 1

4

Indata 2

3
4
0
4

Utdata 2

11

Förklaring

Exempelindata 1 motsvarar exemplet ovan. En smalast möjliga design för exempelindata 2 är:

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

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.