Jun 112016
 

Babak Final ACM-ICPC 2016 Provincial Sumatra baru saja diselenggarakan pada 28 Mei 2016 yang lalu dalam rangkaian acara IdeaFuse 2016 oleh STIE-STMIK Mikroskil di Medan. Tahun ini IdeaFuse mengalami pelonjakan jumlah peserta hingga mencapai hampir dua kali lipat dengan 43 tim di babak final. Ada 10 soal yang sudah disiapkan untuk babak final dengan tingkat kesulitan yang beragam; post ini akan membahas soal-soal tersebut di halaman selanjutnya.

Pada saat penutupan IdeaFuse 2016, ada yang menghampiri saya (sepertinya coach, lupa nanya dari mana) dan bertanya apakah soal-soal kontes kali ini akan diupload ke online judge. Kebetulan Fredy Ong (ketua juri ACM-ICPC IdeaFuse 2016) ada di samping saya pada saat itu, jadi saya langsung tanyakan ke Fredy: “Fred, boleh gak diupload?”, dan langsung di-OK-in oleh Fredy. Jadi soal IdeaFuse 2016 kali ini sudah saya upload ke Jollybee Online Judge (ID 256..265); kalian bisa langsung mencoba menyelesaikan soal-soalnya di sana.


  14 Responses to “ACM-ICPC 2016 Provincial Sumatra (IdeaFuse)”

  1. Untuk soal a, bisa pakai backtrack ?

  2. Untuk problem G, yang binary search itu harus buat kayak konsep lowerbound sama upperbound y?

    • saya tidak yakin dengan pengertian “lowerbound” dan “upperbound” kamu di sini.

      diberikan array yang berisi sejumlah bilangan dalam keadaan terurut, ada berapa bilangan yang nilainya di antara A dan B. A adalah “lowerbound” dan B adalah “upperbound” dalam pencarian kamu. apa ini maksudnya?

  3. Pak, untuk koding special formation yang bapak berikan untuk if ( bit & (1 << p) ) bukannya if ( bit & (1 << p) == 0) dan untuk f(x+1,bit|p) bukannya f(x+1,bit|(1 << p)) ?

  4. Pak, untuk soal D bisa g pakai big integer java?

    • most likely penggunaan BigInteger java di kasus ini akan bikin TLE atau MLE atau RTE. nilai N terbesar pada nck(N,K) itu bisa mencapi 20100 — ada 20100 substring yang unik. saya nggak tahu berapa 20100! (faktorial) itu berapa, tapi yang pasti luar biasa besar.

      • Pak, untuk soal D, bapak bilang aturan mod tidak berlaku untuk pembagian, bagaimana kalau bagi dulu baru di mod?? kan sama saja.. maaf pak, saya masih belum mengerti

      • (a / b) mod m itu nggak sama dengan ((a mod m) / (b mod m)) mod m, aturan modulo seperti ini nggak berlaku untuk pembagian.

        contoh: a = 100, b = 20, m = 4
        * (a / b) mod m = (100 / 20) mod 4 = 5 mod 4 = 1
        * ((a mod m) / (b mod m)) mod m = ((100 mod 4) / (20 mod 4)) mod 4 = (0 / 0) mod 4 = ??

        silakan coba dengan angka lain.

        “bagi dulu baru di mod” — kan emang ini yang mau dicari? hasil modulo setelah pembagian, kalau bisa dilakukan, ya lakukan aja. tapi di soal ini, angka2nya akan besar sekali, jadi ngga memungkinkan kamu melakukan “bagi dulu baru mod” dengan tipe data primitif (int, long long, dll).

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)