Anda di halaman 1dari 10

CSGE602040 - Struktur Data dan Algoritma

Semester Genap - 2021/2022


TP 3
Deadline: Minggu, 22 Mei 2022, 23.55 WIB

Liburan di Masa Pandemi

Deskripsi
Setelah lelah mengirim paket antar pulau, kini Izuri memutuskan untuk berlibur ke negara Pacilkom.
Terdapat 𝑁 kota pada negara Pacilkom yang dinomori 1 sampai 𝑁. Terdapat juga 𝐸 buah jalan 2 arah
yang merupakan penghubung antar kota. Jalan ke-𝑖 menghubungkan kota 𝑈𝑖 dan 𝑉𝑖 , serta memiliki
waktu tempuh dan biaya perawatan sebesar 𝐽𝑖.
Namun, setelah pandemi COVID-19, muncul wabah virus baru bernama PAX-12 yang
menyebar sangat cepat. PAX-12 muncul di beberapa kota dan menyebar ke kota lain sesuai waktu
tempuh kedua kota. Dikarenakan virus PAX-12 sangat berbahaya, Izuri tidak ingin mengunjungi kota
yang sudah terinfeksi atau tiba pada waktu yang sama dengan waktu menyebar virus di kota
tersebut. Izuri dan virus PAX-12 sama-sama memulai perjalanan pada waktu 𝑡 = 0.
Pemerintah pusat berencana mengirim bantuan ke kota yang tidak terinfeksi melalui jalur
udara. Pengiriman melalui jalur udara membutuhkan biaya yang sangat mahal, sehingga bantuan
akan diusahakan dikirim melalui darat. Selain itu, pemerintah ingin menutup beberapa jalan sehingga
virus tidak menyebar ke kota yang tidak terinfeksi dan pengadaan angkutan udara seminimum
mungkin. Perlu diketahui bahwa pemerintah tidak perlu membayar biaya perawatan untuk jalan yang
mereka tutup.
Bantulah Azuri untuk menjawab beberapa pertanyaannya. Terdapat 2 jenis query yang akan
ditanyakan Izuri:
- 1 𝑆 𝑇: Izuri bertanya apakah dia bisa melakukan perjalanan dari kota bernomor 𝑆 ke kota
bernomor 𝑇 tanpa terkena virus. Kota bernomor 𝑆 dipastikan tidak terinfeksi dari awal.
- 2 𝑋: Izuri ingin tahu penghematan biaya perawatan jalan (i.e. total biaya perawatan jalan
yang tidak perlu dibayar akibat penutupan jalan) yang maksimum oleh pemerintah apabila
dilakukan penutupan jalan di waktu 𝑡 = 𝑋 dengan syarat sesuai deskripsi.

Format Masukan
- Baris pertama berisi 2 buah bilangan bulat 𝑁 dan 𝐸, yang merepresentasikan jumlah kota
yang ingin dikunjungi Izuri dan banyak jalan penghubung antar kota.
- 𝐸 baris berikutnya masing-masing berisi 3 buah bilangan bulat 𝑈𝑖, 𝑉𝑖, dan 𝐽𝑖 yang
merepresentasikan jalan penghubung antar kota 𝑈𝑖 dan 𝑉𝑖 yang memiliki waktu tempuh dan
biaya perawatan sebesar 𝐽𝑖
- Baris berikutnya berisi sebuah bilangan bulat 𝑀 yang merepresentasikan jumlah kota yang
mula-mula sudah terinfeksi.
- 𝑀 Baris berikutnya berisi sebuah bilangan bulat 𝐾𝑖 yang merepresentasikan nomor kota yang
mula-mula sudah terinfeksi.
- Baris berikutnya berisi sebuah bilangan bulat 𝑄 yang merepresentasikan jumlah query yang
ingin ditanyakan Izuri.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


- 𝑄 baris berikutnya berisi pertanyaan yang ditanyakan Izuri (query 1 atau 2)

Format Keluaran
Untuk setiap pertanyaan Izuri:
- 1 : Keluarkan “TRUE” diikuti dengan waktu tempuh tersingkat yang dibutuhkan Izuri untuk
sampai ke kota 𝑇 jika Izuri bisa melakukan perjalanan dari kota bernomor 𝑆 ke kota
bernomor 𝑇 tanpa terkena virus. Keluarkan “FALSE” jika Izuri tidak bisa melakukan
perjalanan dari kota bernomor 𝑆 ke kota bernomor 𝑇
- 2 : Penghematan biaya perawatan jalan oleh pemerintah yang maksimum sesuai syarat pada
deskripsi

Batasan
0 ≤ 𝑀 < 𝑁 ≤ 100.000
1 ≤ 𝐸 ≤ 200.000
1 ≤ 𝑈𝑖, 𝑉𝑖, 𝑆, 𝑇, 𝐾𝑖 ≤ 𝑁
1 ≤ 𝐽𝑖 ≤ 1000
0 ≤ 𝑋 ≤ 1.000.000
1≤𝑄≤5

Contoh Masukan 1
6 7
1 3 2
1 2 2
2 5 1
3 2 4
1 4 3
4 5 5
6 4 1
2
3
6
5
1 1 5
1 5 4
1 2 3
1 2 1
2 3

AJS LOL VHP | TP 3 SDA Genap 2021/2022


Contoh Keluaran 1
TRUE 3
FALSE
FALSE
FALSE
17

Penjelasan

Dari input yang diberikan, didapatkan sebuah graf seperti ilustrasi di atas dengan dua buah kota yang
sudah terinfeksi virus PAX-12 yakni kota 3 dan 6. Selanjutnya, terdapat 4 buah query yang diberikan:
- 1 1 5, Izuri bisa pergi dari kota 1 ke kota 5 melalui rute 1 -> 2 -> 5. Total waktu yang
dibutuhkan adalah 3. Kembalikan TRUE 3.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


- 1 5 4, Izuri tidak bisa pergi dari kota 5 ke kota 4 karena waktu yang dibutuhkan untuk pergi
melalui jalan terdekat adalah 5, sedangkan kota 4 sudah terinfeksi pada 𝑡 = 1. Kembalikan
FALSE.

- 1 2 3, Izuri tidak bisa pergi dari kota 2 ke kota 3 karena kota 3 sudah terinfeksi pada waktu t =
0. Kembalikan FALSE.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


- 1 2 1, Izuri tidak bisa pergi dari kota 2 ke kota 1 karena kota 1 sudah terinfeksi pada waktu t =
2. Kembalikan FALSE.

- 2 3, Pada t = 3, didapatkan graf sebagai berikut. Kota 1 dan 4 sudah terinfeksi, sehingga jalan
yang terhubung dengan kota terinfeksi tersebut akan ditutup.

Perhatikan bahwa semua jalan harus ditutup kecuali jalan yang menghubungkan kota 2 dan
5. Dengan begitu, penghematan yang dilakukan pemerintah adalah sebesar 1 + 3 + 5 + 2 + 2
+ 2 + 4 = 17

AJS LOL VHP | TP 3 SDA Genap 2021/2022


Contoh Masukan 2
7 9
1 2 1
2 3 8
4 3 7
2 4 3
1 5 1
1 6 2
1 7 2
5 7 7
3 6 3
1
3
4
2 0
2 4
2 5
2 6

Contoh Keluaran 2
25
27
24
34

Penjelasan

Dari input yang diberikan, didapatkan sebuah graf seperti ilustrasi di atas dengan kota nomor 3 sudah
terinfeksi virus PAX-12. Selanjutnya, terdapat 4 buah query yang diberikan:

AJS LOL VHP | TP 3 SDA Genap 2021/2022


- 2 0, pada t=0, keadaan kota menjadi seperti ini:

Pemerintah menutup seluruh jalan yang terhubung dengan kota 3 karena terinfeksi virus
PAX-12. Lalu pemerintah juga menutup jalan penghubung antara kota 5 dan 7 untuk
memaksimumkan penghematan. Maka penghematan yang didapat adalah 7 + 7 + 8 + 3 = 25.

- 2 4, pada t=4, keadaan kota menjadi seperti ini:

Kota 6 menjadi terinfeksi, sehingga pemerintah menutup jalan yang terhubung dengan kota
6 dan 3. Pemerintah juga tetap menutup jalan penghubung kota 5 dan 7, sehingga
penghematan yang didapat adalah 2 + 3 + 7 + 7 + 8 = 27.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


- 2 5, pada t=5, keadaan kota menjadi seperti ini:

Kota 1 menjadi terinfeksi, sehingga pemerintah menutup jalan yang terhubung dengan kota
1, 3, dan 6. Pemerintah tidak boleh menutup jalan lagi karena akan menambah armada
udara yang perlu disiapkan. Penghematan yang didapat adalah 8 + 7 + 3 + 2 + 2 + 1 + 1 = 24.

- 2 6, pada t=6, keadaan kota menjadi seperti ini:

Kota 2 dan 5 menjadi terinfeksi, sehingga kota yang tidak terinfeksi tinggal kota 7 dan 4.
Pemerintah harus menutup semua jalan agar virus tidak menyebar, sehingga penghematan
yang dilakukan pemerintah adalah 3 + 2 + 2 + 7 + 1 + 1 + 3 + 7 + 8 = 34.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


Keterangan Tambahan
Struktur data bawaan java yang diperbolehkan pada TP ini hanyalah primitive array, ArrayList, Stack,
Queue, Vector, LinkedList, dan ArrayDeque. Penggunaan struktur data bawaan lain, seperti
HashMap, HashSet, TreeMap, PriorityQueue dilarang dan akan mendapatkan penalti 20%.

TIdak diperbolehkan untuk mengimplementasikan BST sendiri, seperti AVL, treap, RB-tree. Tidak
diperbolehkan untuk menggunakan algoritma atau struktur data tingkat lanjut yang belum atau tidak
diajarkan pada SDA, seperti hash table, Dinic algorithm, Hungarian algorithm, dan ear
decomposition. Pelanggaran akan mendapatkan penalti 20%

Tidak diperbolehkan untuk menggunakan fungsionalitas sorting bawaan java, seperti


collections.Sort. Anda wajib mengimplementasikan sorting sendiri jika solusinya memerlukan
sorting. Pelanggaran akan mendapatkan penalti 15%.

Anda bebas untuk memakai seluruh algoritma graf yang sudah atau akan dipelajari di SDA, seperti
Dijkstra, Kruskal (dan struktur data union-find), Prim dan DFS/BFS.

AJS LOL VHP | TP 3 SDA Genap 2021/2022


Informasi Tambahan Test-case
Nomor Test Case Batasan Tambahan

𝑀=0
1 - 10
Hanya query tipe-1

𝑀=1
11 - 15 𝐽𝑖 = 1 untuk setiap i
Hanya query tipe-1

𝐽𝑖 = 1 untuk setiap i
16 - 20
Hanya query tipe-1

𝑀=1
21 - 25
Hanya query tipe-1

26 - 30 Hanya query tipe-1

𝑁 ≤ 100
31 - 40 𝑋=0
Hanya query tipe-2

𝑁 ≤ 100
41 - 50
Hanya query tipe-2

𝑋=0
51 - 55
Hanya query tipe-2

56 - 60 Hanya query tipe-2

61 - 80 𝑁 ≤ 100

81 - 100 Tidak ada batasan tambahan

AJS LOL VHP | TP 3 SDA Genap 2021/2022

Anda mungkin juga menyukai