すべての要素がその前の要素以上である場合、数字のリストは単調増加(または非減少)と呼ばれます。
たとえば、1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14
単調に増加しています。
で示される任意の数の空のスポットを持つ単調に増加する正の整数のリストが与えられると、?
空のスポットを正の整数で埋めて、リストにできるだけ多くの一意の整数が存在するようにしますが、単調に増加したままです。
これを実現する方法は複数あります。いずれも有効です。
結果のリストを出力します。
たとえば、入力が
?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ?
空のスポットがないと、リストが単調に増加することが保証されます
1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14
そして、あなたの仕事は、正の整数をそれぞれに割り当て
?
て、リスト内の異なる整数の数を最大化しながら、それを減少させないことです。無効な割り当ては
1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 8, 10, 11, 14, 14, 14, 14, 14
なぜなら、それは減少していませんが、入力よりも一意な整数が1つしかないため
3
です。この例では、6つの一意の正の整数を挿入し、リストを減少させないことができます。
考えられるいくつかの方法は次のとおりです。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
これらのいずれか(および他の多く)が有効な出力になります。
すべての空のスポットを埋める必要があります。
挿入できる整数に上限はありません。非常に大きな整数が科学表記法で出力されても問題ありません。
ゼロは正の整数ではないため、挿入しないでください。
代わりに、?
正の整数でない任意の一貫した値、のような使用することができます0
、-1
、null
、False
、またはを""
。
バイト単位の最短コードが優先されます。
その他の例
[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 *