Ingatlah bahwa satu set tidak diurutkan tanpa duplikat.
Definisi Sebuah N -uniquely aditif set S yang panjangnya K adalah satu set sedemikian rupa sehingga semua N -Panjang subset di S sum ke nomor yang berbeda. Dengan kata lain, jumlah dari semua himpunan bagian panjang N dari S semuanya berbeda.
Objective Diberikan array / set sebagai input dan angka N
ke fungsi atau ke program lengkap dalam format yang masuk akal, menemukan dan mengembalikan atau menampilkan nilai yang benar atau salah (kesalahan untuk falsey tidak apa-apa) yang menunjukkan apakah input tersebut N - aditif unik.
Anda dapat mengasumsikan bahwa setiap elemen hanya muncul paling banyak satu kali dan bahwa setiap angka berada dalam tipe data asli bahasa Anda. Jika perlu, Anda juga dapat mengasumsikan bahwa input diurutkan. Terakhir, Anda dapat menganggap itu 0 < N <= K
.
Contohnya
Mari kita pertimbangkan set S = {1, 2, 3, 5}
dan N = 2
. Berikut ini semua jumlah semua pasangan unik S
(untuk yang unik adalah satu-satunya yang menarik untuk jumlah):
1 + 2 = 3
1 + 3 = 4
1 + 5 = 6
2 + 3 = 5
2 + 5 = 7
3 + 5 = 8
Kita dapat melihat bahwa tidak ada duplikat dalam output, jadi S adalah aditif 2-unik.
Sekarang mari kita pertimbangkan set T = {12, 17, 44, 80, 82, 90}
dan N = 4
. Berikut ini semua jumlah panjang yang mungkin dari empat:
12 + 17 + 44 + 80 = 153
12 + 17 + 44 + 82 = 155
12 + 17 + 44 + 90 = 163
12 + 17 + 80 + 82 = 191
12 + 17 + 80 + 90 = 199
12 + 17 + 82 + 90 = 201
12 + 44 + 80 + 82 = 218
12 + 44 + 80 + 90 = 226
12 + 44 + 82 + 90 = 228
12 + 80 + 82 + 90 = 264
17 + 44 + 80 + 82 = 223
17 + 44 + 80 + 90 = 231
17 + 44 + 82 + 90 = 233
17 + 80 + 82 + 90 = 269
44 + 80 + 82 + 90 = 296
Mereka semua unik, dan T adalah aditif 4-unik.
Uji Kasus
[members], N => output
[1, 4, 8], 1 => true
[1, 10, 42], 1 => true ; all sets trivially satisfy N = 1
[1, 2, 3, 4], 3 => true
[1, 2, 3, 4, 5], 5 => true
[1, 2, 3, 5, 8], 3 => true
[1, 2, 3, 4, 5], 2 => false ; 1 + 4 = 5 = 2 + 3
[-2, -1, 0, 1, 2], 3 => false ; -2 + -1 + 2 = -1 = -2 + 0 + 1
[1, 2, 3, 5, 8, 13], 3 => false ; 1 + 2 + 13 = 16 = 3 + 5 + 8
[1, 2, 4, 8, 16, 32], 3 => true
[1, 2, 4, 8, 16, 32], 4 => true
[1, 2, 4, 8, 16, 32], 5 => true
[1, 2, 4, 8, 16, 32], 6 => true
[3, 4, 7, 9, 12, 16, 18], 6 => true
[3, 4, 7, 9, 12, 16, 18], 3 => false ; 3 + 4 + 12 = 19 = 3 + 7 + 9
falsey
?
N <= K
?