pengantar
Sebuah Array pointer adalah array L
dari nol bilangan bulat mana 0 ≤ L[i]+i < len(L)
berlaku untuk semua indeks i
(dengan asumsi pengindeksan 0-based). Kami mengatakan bahwa indeks i
menunjuk ke indeks L[i]+i
. Array penunjuk adalah lingkaran jika indeks membentuk satu siklus panjang len(L)
. Berikut ini beberapa contohnya:
[1,2,-1,3]
bukan array pointer, karena3
tidak menunjuk ke indeks.[1,2,-1,-3]
adalah array pointer, tetapi bukan loop, karena tidak ada indeks yang menunjuk ke-1
.[2,2,-2,-2]
adalah array pointer, tetapi bukan loop, karena indeks membentuk dua siklus.[2,2,-1,-3]
adalah sebuah loop.
Memasukkan
Input Anda adalah daftar bilangan bulat bukan-kosong yang kosong, dalam format apa pun yang masuk akal. Mungkin tidak disortir dan / atau mengandung duplikat.
Keluaran
Output Anda akan menjadi sebuah loop yang berisi semua bilangan bulat dalam daftar input (dan mungkin juga bilangan bulat lainnya), menghitung multiplisitas. Mereka tidak perlu terjadi dalam urutan yang sama seperti pada input, dan output tidak perlu minimal dalam arti apa pun.
Contoh
Untuk input [2,-4,2]
, output yang dapat diterima adalah [2,2,-1,1,-4]
.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan. Termasuk beberapa contoh input dan output dalam jawaban Anda dihargai.
Uji kasus
Ini diberikan dalam format 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
, karena speknya bertuliskan " bilangan nol ".