Un elenco di numeri è chiamato monotonicamente crescente (o non decrescente) se ogni elemento è maggiore o uguale all'elemento precedente.
Ad esempio, 1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14
sta aumentando monotonicamente.
Dato un elenco monotonicamente crescente di numeri interi positivi che ha un numero arbitrario di punti vuoti indicato da ?
, riempire i punti vuoti con numeri interi positivi in modo tale che il numero intero di numeri interi possibili sia presente nell'elenco, ma rimane monotonicamente crescente.
Ci possono essere diversi modi per ottenere questo risultato. Qualsiasi è valido.
Emette l'elenco risultante.
Ad esempio , se l'ingresso è
?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ?
è garantito che senza i punti vuoti l'elenco sarà monotonicamente crescente
1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14
e il tuo compito è quello di assegnare numeri interi positivi a ciascuno di essi
?
per massimizzare il numero di numeri interi distinti nell'elenco mantenendo al contempo non in diminuzione.Un compito non valido è
1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 8, 10, 11, 14, 14, 14, 14, 14
perché, mentre non diminuisce, ha solo un intero univoco in più rispetto all'input, vale a dire
3
.In questo esempio è possibile inserire sei numeri interi positivi unici e mantenere la lista non in diminuzione.
Un paio di modi possibili sono:1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 8, 8, 10, 11, 12, 14, 14, 15, 16 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 6, 6, 7, 8, 10, 11, 13, 14, 14, 20, 200
Uno di questi (e molti altri) sarebbe un output valido.
Tutti i punti vuoti devono essere riempiti.
Non esiste un limite superiore per gli interi che possono essere inseriti. Va bene se numeri molto grandi sono stampati in notazione scientifica.
Lo zero non è un numero intero positivo e non deve mai essere inserito.
Al posto di ?
si può utilizzare qualsiasi valore costante che non è un numero intero positivo, come ad esempio 0
, -1
, null
, False
, o ""
.
Vince il codice più breve in byte.
Altri esempi
[input]
[one possible output] (a "*" means it is the only possible output)
2, 4, 10
2, 4, 10 *
1, ?, 3
1, 2, 3 *
1, ?, 4
1, 2, 4
{empty list}
{empty list} *
8
8 *
?
42
?, ?, ?
271, 828, 1729
?, 1
1, 1 *
?, 2
1, 2 *
?, 3
1, 3
45, ?
45, 314159265359
1, ?, ?, ?, 1
1, 1, 1, 1, 1 *
3, ?, ?, ?, ?, 30
3, 7, 10, 23, 29, 30
1, ?, 2, ?, 3, ?, 4
1, 1, 2, 3, 3, 3, 4
1, ?, 3, ?, 5, ?, 7
1, 2, 3, 4, 5, 6, 7 *
1, ?, 3, ?, 5, ?, ?, 7
1, 2, 3, 4, 5, 6, 7, 7
1, ?, ?, ?, ?, 2, ?, ?, ?, ?, 4, ?, 4, ?, ?, 6
1, 1, 1, 1, 1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 6, 6
98, ?, ?, ?, 102, ?, 104
98, 99, 100, 101, 102, 103, 104 *