Soal text
Transkripsi dicocokkan dengan 4 halaman naskah asli.
Redaksi dirapikan untuk dibaca. Data, pilihan jawaban, dan subsoal mengikuti naskah; diagram dijelaskan dalam teks atau tabel.
Lompat ke soal
UAS Pemrograman Lanjut 2024/2025
Selasa, 17 Juni 2025 · 13.00–14.40 WIB (100 menit) · Cheatsheet satu A4 bolak-balik. Gunakan komputer laboratorium. Kerjakan mandiri dalam C, C++, atau Python (pilih satu). Simpan di drive C dengan nama UAS_PL_NIM_Nama_NomorSoal.
1. Bilangan Maja (35%)
Bilangan Maja panjang N (4≤N≤100) adalah integer positif N digit tanpa leading zero yang memenuhi setidaknya salah satu:
- Jumlah dua digit pertama genap.
- Dua digit terakhir membentuk bilangan prima.
Contoh: 1202 valid karena02 prima;53160 valid karena5+3=8 genap;243913 valid karena2+4=6 dan13 prima;0313 tidak valid karena leading zero.
Masukan: T kasus uji, tiap kasus berisi N. Keluaran: banyak Bilangan Maja panjang N, modulo 9973.
Contoh input:
2
4
5
Contoh output:
5625
6385
2. Perpotongan segmen (35%)
Ferdi menggambar N segmen horizontal/vertikal lalu mengajukan Q pertanyaan, masing-masing berupa segmen. Hitung berapa segmen awal berpotongan dengan segmen pertanyaan. Perpotongan berarti tepat satu titik di dalam kedua segmen dan bukan ujung segmen. Pertanyaan independen.
Masukan: N Q; lalu N baris X1 Y1 X2 Y2 untuk segmen awal; lalu Q baris format sama untuk pertanyaan. Keluaran: satu jumlah per pertanyaan. Batasan:
- 1≤N,Q≤1000.
- −10³≤x1,y1,x2,y2≤10³.
- Vertikal: x1=x2,y1<y2; horizontal: y1=y2,x1<x2.
Contoh input:
6 2
0 5 6 5
1 1 1 8
2 2 2 4
3 2 3 8
3 2 6 2
4 5 4 7
0 3 6 3
3 0 3 9
Contoh output:
3
1
3. Lomba mengetik (30%)
Semua peserta mendapat teks alfanumerik yang sama (angka, huruf besar/kecil), mulai dari karakter pertama, mengetik sebanyak mungkin sampai batas waktu. Teks dianggap tak hingga sehingga tidak ada yang selesai seluruhnya. Hasil semua peserta tanpa sengaja digabung menjadi satu string. Contoh hasil sayamakannasi, sayamak, say digabung menjadi sayamakannasisayamaksay. Bantu menentukan jumlah peserta dan pekerjaan masing-masing.
Masukan: satu baris string alfanumerik. Keluaran: baris pertama integer positif K, maksimum jumlah peserta; baris kedua K posisi karakter pertama yang diketik setiap peserta, dipisahkan spasi, urut menaik. Jika banyak solusi, keluarkan salah satu.
Contoh input:
sayamakannasisayamaksay
Contoh output:
3
1 14 21
Salah satu teks asal mungkin sayamakannasigoreng; peserta berhenti setelah sayamakannasi, sayamak, dan say.