[!EXAMPLE] Detail
- Jumlah Soal: 40 butir
- Waktu Pengerjaan: 150 menit
Soal 1. Perhatikan tabel berikut.
| Film | Waktu Mulai | Waktu Berakhir |
|---|---|---|
| A | 09.00 | 11.00 |
| B | 09.30 | 12.30 |
| C | 10.00 | 11.30 |
| D | 11.00 | 13.00 |
| E | 11.30 | 13.30 |
| F | 12.00 | 14.00 |
| G | 13.00 | 15.00 |
| H | 13.30 | 15.30 |
| I | 14.30 | 16.00 |
| J | 15.00 | 17.00 |
Suatu hari Kak Salman mendatangi sebuah festival film pada pukul 08.00, ia tahu bahwa akan ada 10 film yang diputar. Ia memiliki data waktu mulai dan berakhirnya setiap film. Kak salman pun bertanya-tanya, Berapa jumlah maksimum film yang bisa ia tonton secara keseluruhan?
- 2
- 3
- 4
- 5
- 6
Soal 2. Kak Salman memiliki sebuah larik sepanjang 70 dimana angka 1 sampai 70 muncul tepat sekali. Kak Salman penasaran ada berapa banyak cara ia bisa membagi array tersebut menjadi 2 bagian sehingga jumlah elemen di kedua array adalah sama?
Sebagai contoh, larik $[1, 2, 3]$ bisa dibagi menjadi 2 cara yakni $[1, 2] + [3]$ dan $[3] + [1, 2]$.
- 35
- 70
- 0
- 100
- 1235
Soal 3. Ada 1000 permen dengan masing-masing permen memiliki nomor unik antara 1 sampai 1000. Kak Salman menyukai semua permen dengan nomor habis dibagi 15. Sedangkan Kak Rehan menyukai semua permen dengan nomor habis dibagi 21.
Pak Dengklek menyadari bahwa ada beberapa permen yang disukai oleh keduanya dan mengetahui bahwa akan terjadi pertengkaran di antara mereka (karena berebut permen dengan nomor yang sama). Bantulah Pak Dengklek untuk menentukan ada berapa banyak permen yang harus disembunyikan supaya Kak Rehan dan Kak Salman tidak bertengkar.
- 7
- 9
- 8
- 4
- 5
Soal 4. Perhatikan graf berikut.

Kak Salman merupakan seorang raja di Negeri Konoha. Salah satu masalah yang ia sedang hadapi adalah pembangunan jembatan yang akan menghubungkan pulau-pulau di daerahnya. Kak Salman ingin agar nantinya ada jalan untuk berpindah dari suatu pulau ke pulau yang lain walaupun harus melewati beberapa pulau lain terlebih dahulu.
Berikut diberikan data pembangunan jembatan antar pulau. Bantulah Kak Salman untuk menentukan biaya minimum yang diperlukan untuk memenuhi kondisi di atas. Di mana lingkaran adalah pulau, dan garis adalah jembatan.
Soal 5. Perhatikan grid berikut.

Ilham dan Salman menemukan diri mereka dalam sebuah permainan strategi di atas papan kuno berukuran 5 baris dan 4 kolom. Setiap petak di papan tersebut menyimpan sejumlah poin berharga.
Posisi awal mereka telah ditentukan: Ilham memulai perburuannya dari sudut kiri atas, di petak $(1,1)$, sementara Salman memulai dari sudut yang berlawanan, di kanan bawah, pada petak $(5,4)$.
Mereka bermain secara bergantian, dengan Ilham mendapat giliran pertama. Pada setiap giliran, seorang pemain bisa berpindah dari satu kotak ke kotak yang lain dengan syarat jarak kedua kotak adalah genap. Jarak ini didefinisikan sebagai jumlah dari selisih baris dan selisih kolom.
Saat seorang pemain mendarat di sebuah petak, ia langsung mengumpulkan semua poin di petak itu, dan seketika itu juga, poin di petak tersebut menjadi $0$. Permainan akan berakhir ketika semua kotak sudah menjadi $0$.
Keduanya adalah ahli strategi yang bermain secara optimal. Mereka tidak hanya ingin memaksimalkan poin mereka sendiri, tetapi juga ingin memaksimalkan selisih akhir (selisih poinku dengan poin lawan). Setelah permainan berakhir, berapakah selisih poin maksimal antara 2 pemain yang mungkin terjadi?
- 18
- 12
- 17
- 14
- 16
Soal 6. Perhatikan graf berikut.

Kak Salman adalah warga Negara Konoha yang tinggal di kota $1$. Ia mempunyai data mengenai jarak terpendek untuk berpergian dari kota tempat tinggalnya (kota $1$) menuju setiap kota yang ada di negaranya. Kak Salman lalu memintamu untuk mencari tahu jumlah seluruh data yang ia miliki. Atau dengan kata lain, misal $\operatorname{dist}[i]$ adalah jarak terpendek berpergian dari kota $1$ menuju kota $i$. Kak Salman memintamu untuk mencari $\operatorname{dist}[1] + \operatorname{dist}[2] + \cdots + \operatorname{dist}[9]$.
- 53
- 60
- 73
- 77
- 80
[!important] Soal 7–9 Perhatikan larik berikut.
$$ A = [9, 14, 5, 1, 10, 3, 13, 11, 2, 15, 6, 8, 12, 4] $$
Di suatu sore yang tenang, Kak Salman, seorang penggemar algoritma dan struktur data, sedang asyik memikirkan sebuah tantangan baru. Ia memiliki sebuah larik $A$ yang berisikan 14 elemen bilangan bulat.
Tiba-tiba, sebuah ide melintas di benaknya. “Bagaimana jika aku mencoba menulis semua subsekuens yang mungkin dari larik ini?” Dengan semangat, Kak Salman pun memulai tugasnya, menuliskan setiap kombinasi subsekuens yang bisa ia temukan.
Setelah Kak Salman selesai dengan proyek ambisiusnya menulis semua subsequence tersebut, ia kini ingin menguji pemahaman Anda. Ia mengajukan beberapa pertanyaan penting.
Sebuah subsekuens dari sebuah larik adalah urutan baru yang dibentuk dari elemen-elemen array aslinya dengan menghapus nol atau lebih elemen, tanpa mengubah urutan relatif elemen yang tersisa. Contoh subsekuens dari larik $A$ adalah $[9,1,4]$, $[1,3,2]$, dan $[5,1,3,2]$.
Soal 7. Ada berapa banyak subsekuens yang Kak Salman tulis?
- $\pu{16384}$
- $\pu{2512}$
- $\pu{1604}$
- $\pu{30012}$
- $\pu{51200}$
Soal 8. Dari seluruh kemungkinan subsekuens yang ada, berapa panjang subsekuens maksimum yang mungkin?
- 5
- 10
- 14
- 8
- 30
Soal 9. Berapa panjang maksimum subsekuens yang mungkin jika elemen pada subsekuens harus terurut menaik? Contoh subsequnce terurut menaik adalah $[1,3,4]$.
- 5
- 3
- 4
- 6
- 8
[!important] Soal 10–12 Seorang pedagang tua misterius di pasar terlarang menawarimu kesepakatan. Dia hanya mau menerima pembayaran menggunakan empat jenis koin kuno, yang masing-masing bernilai $2$, $3$, $4$, atau $7$.
Kamu harus membayar sejumlah $X$ kepadanya, dan kamu ingin menggunakan keping koin sesedikit mungkin.
Soal 10. Anggap kamu memiliki persediaan tak terbatas untuk setiap jenis koin. Pedagang itu meminta bayaran $X = 12$. Berapa banyak koin minimum yang kamu perlukan untuk membayarnya?
- 2
- 3
- 4
- 5
- 6
Soal 11. Masih dengan persediaan tak terbatas, pedagang itu meminta $X = 19$. Berapa banyak koin minimum yang kamu perlukan untuk membayarnya?
- 3
- 4
- 5
- 6
- 7
Soal 12. Sekarang, anggap kamu hanya memiliki dua keping untuk setiap jenis koin (dua koin $2$, dua koin $3$, dan seterusnya). Pedagang itu meminta $X = 13$. Berapa banyak koin minimum yang kamu perlukan untuk membayarnya?
- 5
- 4
- 3
- 2
- 1
[!important] Soal 13–15 Kak Salman memilik sebuah larik $A$ yang berisi 15 elemen.
$$ A = [-8, 5, 10, 0, -3, 7, -1, 9, -10, 2, -5, 6, 1, -7, 4] $$
Ia bisa melakukan 2 jenis operasi sebanyak berapapun yang ia mau
- Operasi 1: Menghapus satu elemen dari belakang.
- Operasi 2: Menghapus satu elemen dari depan.
Skor adalah jumlah seluruh elemen dari larik yang ada. Sebagai contoh, larik $[2, 3, -2, 4]$ memiliki skor $7$. Perhatikan bahwa larik kosong memliki skor 0.
Soal 13. Berapa skor maksimum yang mungkin jika Kak Salman melakukan operasi dengan optimal?
- $20$
- $27$
- $30$
- $18$
- $25$
Soal 14. Berapa skor minimum yang mungkin jika Kak Salman melakukan operasi dengan optimal?
- $0$
- $-8$
- $-14$
- $-13$
- $-10$
Soal 15. Berapa banyak operasi minimum yang harus dilakukan Kak Salman agar skor akhir adalah $0$?
- $5$
- $7$
- $10$
- $13$
- $11$
[!important] Soal 16–18 Kak Salman memiliki sebuah larik sebagai berikut.
$$ [5, 11, 1, 8, 14, 3, 9, 15, 2, 7, 12, 6, 10, 4, 13] $$
Kak Salman memiliki tujuan untuk mengurutkan array tersebut baik secara menaik maupun menurun. Bantulah Kak Salman menghitung banyaknya penukaran yang harus dilakukan!
Soal 16. Jika penukaran didefinisikan sebagai ‘menukar dua buah elemen yang bersebelahan,’ berapa penukaran minimum yang diperlukan untuk membuat array terurut menaik?
- $30$
- $38$
- $40$
- $46$
- $47$
Soal 17. Jika penukaran didefinisikan sebagai ‘menukar dua buah elemen yang bersebelahan,’ berapa penukaran minimum yang diperlukan untuk membuat array terurut menurun?
- $50$
- $53$
- $56$
- $59$
- $60$
Soal 18. Jika penukaran didefinisikan sebagai ‘menukar dua buah elemen (tidak harus bersebelahan),’ berapa penukaran minimum yang diperlukan untuk membuat array terurut menaik?
- $10$
- $14$
- $15$
- $16$
- $17$
[!important] Soal 19–21 Perhatikan potongan kode berikut.
int main() { int n; cin >> n; vector V(n); for (int i = 0; i < n; i++) cin >> V[i]; while (true) { bool cek = true; for (int i = 0; i < n - 1; i++) { swap(V[i], V[i + 1]); cek = false; } if (cek) break; } for (auto& e : V) cout << e << " "; }
Soal 19. Jika diberikan masukan
7
5 2 6 1 4 7 3apa keluaran program?
-
1 2 3 4 5 6 7 -
7 6 5 4 3 2 1 -
2 1 3 4 5 6 7 -
1 7 2 6 3 4 5 -
2 1 3 4 5 6 7
Soal 20. Berapa kompleksitas waktu program tersebut?
- $O(\log \mathtt{n})$
- $O(\mathtt{n} \log \mathtt{n})$
- $O(\mathtt{n}^2)$
- $O(\mathtt{n})$
- $O(\mathtt{n}^3)$
Soal 21. Ada berapa banyak kombinasi masukan sehingga keluaran program adalah
3 4 4 5 5 5 6 7 7 8- $\pu{151200}$
- $\pu{302400}$
- $\pu{298750}$
- $\pu{333444}$
- $\pu{123456}$
[!important] Soal 22–24 Perhatikan potongan kode berikut.
int ayam(int n) { for (int i = 30; i >= 0; i--) if ((n >> i) & 1) return i; return 0; } int bebek(int n) { int res = 0; while (n) { if (n & 1) res++; n /= 2; } return res; }
Soal 22. Berapa hasil dari ayam(1020) + ayam(1021) + ayam(1022) + ayam(1023) + ayam(1024)?
- $25$
- $30$
- $36$
- $46$
- $49$
Soal 23. Berapa hasil dari bebek(256) + bebek(2048) + bebek(64) - bebek(7)?
- $5$
- $8$
- $0$
- $1$
- $2$
Soal 24. Fungsi ayam dan bebek memiliki kompleksitas waktu yang sama, yaitu ….
- $O(\log \mathtt{n})$
- $O(\mathtt{n} \log \mathtt{n})$
- $O(\mathtt{n}^2)$
- $O(\mathtt{n})$
- $O(\mathtt{n}^3)$
[!important] Soal 25–27 Perhatikan potongan kode berikut.
int halo(int a, int b) { if (b == 0) return 1; int res = halo(a, b / 2); res *= res; if (b & 1) res *= a; return res; } int oke(int n, int k) { int res = 0; for (int i = 0; i <= k; i++) res += halo(n, i); return res; }
Soal 25. Berapa hasil dari halo(3, 4)?
- $64$
- $81$
- $90$
- $95$
- $96$
Soal 26. Berapa hasil dari oke(2, 9)?
- $1100$
- $1024$
- $1023$
- $1240$
- $1300$
Soal 27. Berapakah hasil dari
(halo(2, 100) + halo(3, 100) + halo(5, 100)) % 11- $3$
- $0$
- $5$
- $8$
- $10$
[!important] Soal 28–30 Perhatikan potongan kode berikut.
int cinta(int n) { int res = 1; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { int cnt = 1; while (n % i == 0) { n /= i; cnt++; } res *= cnt; } } if (n != 1) res *= 2; return res; }
Soal 28. Berapakah nilai dari cinta(2512)?
- $6$
- $8$
- $12$
- $10$
- $11$
Soal 29. Berapakah kompleksitas waktu dari fungsi cinta?
- $O(\mathtt{n})$
- $O(\mathtt{n} \log \mathtt{n})$
- $O(\mathtt{n}^2)$
- $O(\sqrt{\mathtt{n}})$
- $O(\mathtt{n}^3)$
Soal 30. Ada berapa banyak bilangan bulat positif n di antara 1 sampai 1000 (inklusif) sehingga nilai dari cinta(n) adalah ganjil?
- $29$
- $30$
- $31$
- $32$
- $33$
Soal 31. Jika $x$ dan $y$ adalah bilangan bulat, maka berapakah nilai $x + y$ yang memenuhi $2024x + 976y = 8$?
- $26$
- $27$
- $28$
- $29$
- $30$
Soal 32. Berapakah jumlah semua faktor yang habis membagi $3528$ dan $\pu{11025}$?
- $451$
- $541$
- $641$
- $471$
- $741$
Soal 33. Dari angka $2$, $3$, $5$, $7$, dan $9$ akan dibuat 4 digit angka berbeda yang bernilai kurang dari $7000$. Berapa banyak susunan angka yang mungkin?
- $72$
- $82$
- $92$
- $27$
- $28$
Soal 34. Sembilan orang akan duduk di tiga meja melingkar (meja A, B, dan C). Ada berapa cara penyusunan?
- $\pu{14430}$
- $\pu{13440}$
- $\pu{14340}$
- $\pu{10443}$
- $\pu{10344}$
[!important] Soal 35–36 Bujur sangkar Pascal merupakan penjumlahan elemen-elemen yang berada di tengah tiap baris di segitiga Pascal, perhatikan gambar untuk lebih jelasnya.
Misalkan fungsi $f(x)$ adalah hasil dari penjumlahan setiap elemen urutan genap pada baris ke-$x$. Contohnya nilai dari fungsi $f(7) = 6 + 20 + 6 = 32$ dan nilai dari fungsi $f(6) = 5 + 10 + 1 = 16$.
Soal 35. Berapakah nilai $f(20)$?
- $\pu{26209}$
- $\pu{26309}$
- $\pu{26409}$
- $\pu{262090}$
- $\pu{263090}$
Soal 36. Berapakah nilai $f(25)$?
- $\pu{8388608}$
- $\pu{9388608}$
- $\pu{7388608}$
- $\pu{6388608}$
- $\pu{5388608}$
Soal 37. Berapa banyak solusi bilangan bulat dari $x_1 + x_2 + x_3 + x_4 + x_5 = 27$ jika $1 < x_1 \leq 5$ dan $x_4 \geq 17$?
- $350$
- $375$
- $400$
- $425$
- $450$
Soal 38. Pak Ganesh memiliki 2023 buah lampu dan 2023 tombol. Setiap saklar dan lampu tersebut diberi nomor secara terurut dari nomor $1$ hingga $2023$. Diketahui bahwa saklar dengan nomor $X$ terhubung dengan lampu dengan nomor kelipatan $X$. Misal, saklar nomor $4$ terhubung dengan lampu nomor $4$, $8$, $12$, …, $2016$, dan $2020$.
Apabila lampu dalam keadaan mati dan tombol ditekan, maka lampu tersebut akan menyala. Begitu pula apabila lampu dalam keadaan nyala dan tombol ditekan, maka lampu tersebut akan mati. Diketahui bahwa semua lampu masih dalam keadaan mati, kemudian Pak Ganesh menekan semua saklar yang ada.
Berapa banyak lampu yang menyala pada akhirnya?
- $41$
- $42$
- $43$
- $44$
- $45$
Soal 39. Berapa banyak angka $0$ berurutan di akhir bilangan $2023!$? Misal, $10500$ memiliki dua angka $0$ di akhir.
- $503$
- $553$
- $603$
- $663$
- $703$
Soal 40. Berapa banyaknya cara mengubah susunan kata ‘JATINANGOR’, jika huruf J dan R harus saling berdampingan?
- $\pu{114480}$
- $\pu{141840}$
- $\pu{144810}$
- $\pu{184140}$
- $\pu{181440}$
