QOJ.ac

QOJ

시간 제한: 1 s 메모리 제한: 2048 MB 총점: 100

#11366. Tomografia SLA

통계

La stereolitografia (SLA) è una tecnica di stampa 3D per indurire un materiale liquido in un oggetto solido uno strato alla volta utilizzando un laser. In questo problema considereremo una semplificazione 2D della SLA in cui il modello dell'oggetto da stampare può essere rappresentato come una griglia rettangolare di caratteri # e ., dove # rappresenta una cella della griglia occupata dall'oggetto e . è uno spazio vuoto. Ad esempio, ecco un modello $4 \times 8$:

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

Un modello non deve necessariamente consistere in un unico pezzo connesso, ma a eccezione delle celle # sulla riga inferiore del modello, ogni cella # deve essere sostenuta da un'altra cella # direttamente sotto di essa.

La stampa di un oggetto tramite SLA procede strato per strato, partendo dalla riga inferiore. Prima tutte le celle della riga vengono inondate con una resina liquida fotosensibile. Poi un laser scansiona la riga, indurendo la resina in tutte le celle # trasformandola in solido e saltando tutte le celle .. Successivamente, il liquido rimasto a sinistra del # più a sinistra e a destra del # più a destra defluisce. L'altro liquido rimane intrappolato. (Se non ci sono celle # nella riga — cosa che può accadere solo per le righe vicine alla parte superiore del modello, dopo che l'oggetto è stato completamente stampato — tutto il liquido defluisce dalla riga.) Questo processo si ripete poi per ciascuna riga successiva. Per il modello sopra, una volta completata la stampa, la resina rimane intrappolata in tutte le celle contrassegnate con il carattere ~ qui sotto:

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

Mentre aspiri manualmente la resina rimasta dall'oggetto, inizi a chiederti: quanto del modello originale può essere recuperato sapendo solo quanta resina liquida è rimasta in ciascuna riga del modello dopo la stampa? Per il modello sopra, la quantità di resina rimasta in ciascuna riga (partendo dalla cima del modello) è $0, 2, 2, 1$. Anche altri modelli hanno la stessa impronta di resina residua; ad esempio:

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

Data una lista di quante celle di resina liquida rimangono in ciascuna riga (partendo dalla riga superiore), stampa la larghezza del modello di oggetto più stretto le cui righe conterrebbero tali quantità di resina liquida dopo la stampa. Se non esiste alcun modello del genere, stampa impossible.

Dati di ingresso

La prima riga di ingresso contiene un singolo intero $N$ ($1 \le N \le 10^5$), il numero di righe nel modello dell'oggetto. Seguono $N$ righe, ciascuna contenente un singolo intero $x$ ($0 \le x \le 10^9$), il numero di celle di resina liquida residua in ciascuna riga del modello di oggetto desiderato (in ordine dall'alto verso il basso).

Almeno una riga avrà almeno una cella residua di resina liquida.

Dati di uscita

Stampa la larghezza (numero di colonne) nel modello di oggetto più stretto il cui numero di celle di resina liquida residua in ciascuna riga corrisponde all'ingresso. ("Più stretto" significa avente il minor numero possibile di colonne). Se non esiste alcun modello del genere, stampa invece impossible.

Esempi

Dati di ingresso 1

4
0
2
2
1

Dati di uscita 1

4

Dati di ingresso 2

3
4
0
4

Dati di uscita 2

11

Note

L'esempio di ingresso 1 corrisponde all'esempio sopra. Un modello il più stretto possibile per l'esempio di ingresso 2 è:

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

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.