前書き
ポインタ配列は配列であるL非ゼロの整数の0 ≤ L[i]+i < len(L)すべてのインデックスに当てはまるi(0ベースのインデックスを想定します)。インデックスはインデックスをi 指していると言いますL[i]+i。インデックスが長さの単一サイクルを形成する場合、ポインタ配列はループですlen(L)。ここではいくつかの例を示します。
[1,2,-1,3]は3インデックスを指し示していないため、ポインタ配列ではありません。[1,2,-1,-3]はインデックスを指していませんので、ポインタ配列ですが、ループではありません-1。[2,2,-2,-2]インデックスは2サイクルを形成するため、ポインタ配列ですが、ループではありません。[2,2,-1,-3]ループです。
入力
入力は、妥当な形式の非ゼロ整数の空でないリストです。ソートされていないか、重複している可能性があります。
出力
出力は、入力リスト内のすべての整数(および場合によっては他の整数も含む)を含むループであり、多重度をカウントします。それらは入力と同じ順序で発生する必要はなく、出力はいかなる意味でも最小である必要はありません。
例
入力の[2,-4,2]場合、許容可能な出力はになります[2,2,-1,1,-4]。
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。回答にいくつかの例の入力と出力を含めることを歓迎します。
テストケース
これらは形式で与えられますinput -> some possible output(s)。
[1] -> [1,-1] or [1,1,1,-3]
[2] -> [2,-1,-1] or [1,2,-2,-1]
[-2] -> [1,1,-2] or [3,1,2,-2,-4]
[2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1]
[2,2,2] -> [2,-1,2,-2,2,-2,-1] or [2,2,2,2,-3,-5]
[2,-4,2] -> [2,2,-1,1,-4] or [2,5,1,1,1,-4,2,-7,-1]
[3,-1,2,-2,-1,-5] -> [2,3,-1,2,-1,-5] or [3,3,-1,-1,2,2,-1,6,1,1,1,1,-12,-5]
[-2,-2,10,-2,-2,-2] -> [10,-1,1,-2,-2,1,-2,-2,1,-2,-2]
[-15,15,-15] -> [15,-1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,-15,-15]
[1,2,3,4,5] -> [1,2,3,-1,4,-1,5,-1,-1,-9,-1,-1]
n = 0仕様には「非ゼロ整数」。