Sebelum menyentuh satu algoritma pun, Anda perlu memahami persis apa yang diperiksa sebuah judge — dan mengapa “jalan di komputer saya” adalah kalimat paling berbahaya dalam competitive programming. Buku ini mengubah pengetahuan algoritma yang sudah dipelajari di tempat lain menjadi submission yang cepat dan benar di bawah tekanan waktu ketat.

A415 Bab + 3 LampiranBI · EN
Profitina Menaklukkan SPOJ
Unduh Buku Lengkap (PDF)

Ringkasan

Menaklukkan SPOJ dibuka dengan apa sesungguhnya SPOJ (Sphere Online Judge) itu dan persis apa yang diperiksa pipeline otomatisnya atas sebuah submission, lalu berlanjut ke membaca soal sebagaimana seorang judge membacanya, memilih algoritma yang tepat untuk batasan yang dinyatakan, I/O cepat dalam C/C++, pragma compiler dan risiko portabilitas, serta pilihan memori dan struktur data di bawah anggaran byte yang ketat. Serangkaian bab tentang jebakan implementasi klasik dan cara men-debug TLE dan WA tanpa judge menjelaskan alasannya, diikuti bab-bab pola algoritmik — dynamic programming, soal greedy dan exchange-argument, serta satu bab toolkit yang mencakup algoritma graf, teori bilangan, geometri, dan string. Buku ini ditutup dengan contoh lengkap dari awal sampai akhir menuju Accepted, satu bab cheat code dan jalan pintas yang dipakai secara bertanggung jawab, satu bab yang menerapkan semuanya pada Profitina sendiri sebagai studi kasus latihan, dan satu bab tentang ke mana melangkah selanjutnya — didukung tiga lampiran referensi: katalog seluruh soal dalam buku, lembar contekan kompleksitas, dan daftar istilah.

Yang Akan Anda Pelajari

  • Membaca soal competitive programming sebagaimana data uji judge sesungguhnya akan mengujinya, bukan sekadar kesan pertama.
  • Memilih algoritma yang tepat untuk batasan waktu dan memori yang dinyatakan, bukan sekadar algoritma apa pun yang menghasilkan jawaban benar.
  • Menulis I/O C/C++ yang cepat dan portabel, serta menghindari jebakan flag compiler dan portabilitas yang diam-diam menggerus nilai.
  • Mendiagnosis verdict Time Limit Exceeded dan Wrong Answer secara sistematis, tanpa judge memberi tahu apa yang salah.
  • Menerapkan pola dynamic programming, greedy, graf, teori bilangan, geometri, dan algoritma string pada soal judge sesungguhnya.
  • Memakai lampiran buku ini — katalog soal, lembar contekan kompleksitas, dan daftar istilah — sebagai referensi kerja saat berlatih.

Isi Buku

  1. Welcome to Competitive Programming and SPOJ — apa sesungguhnya yang diperiksa sebuah judge, dan mengapa keberhasilan lokal saja tidak cukup.
  2. Reading the Problem Like a Judge Does — menggali batasan sesungguhnya yang tersembunyi dalam pernyataan soal.
  3. Picking the Right Algorithm for the Constraints — menyesuaikan kompleksitas solusi dengan batasan yang dinyatakan.
  4. Fast I/O in C/C++ — kebiasaan input/output yang membedakan Accepted dari Time Limit Exceeded.
  5. Compiler Pragmas, Flags, and Portability Risk — memeras performa tanpa merusak jalannya di mesin judge.
  6. Memory and Data-Structure Choices Under a Byte Budget — memuat solusi yang benar dalam batas memori yang ketat.
  7. Classic Implementation Gotchas That Cause WA — kesalahan berulang yang mengubah gagasan benar menjadi jawaban salah.
  8. Debugging TLE and WA Without the Judge Telling You Why — proses diagnosis sistematis untuk kegagalan judge yang senyap.
  9. Dynamic Programming Patterns for SPOJ — mengenali bentuk-bentuk DP yang muncul berulang kali.
  10. Greedy and Exchange-Argument Problems — membuktikan pilihan greedy benar-benar optimal, bukan sekadar terlihat masuk akal.
  11. Graph, Number Theory, Geometry, and String Algorithm Toolkits — empat toolkit di balik sebagian besar tipe soal yang tersisa.
  12. Getting to Accepted: A Worked End-to-End Example — satu soal, diselesaikan dari awal sampai akhir, setiap keputusan dijelaskan.
  13. Cheat Codes and Shortcuts (Used Responsibly) — trik kecepatan hari kontes yang sah, dan di mana batasnya.
  14. Competitive Programming in Practice: Profitina — menerapkan seluruh toolkit buku ini pada Profitina sendiri sebagai studi kasus.
  15. Where to Go Next — jalan lanjutan bagi pembaca yang ingin terus naik level.
  16. Lampiran A — A Catalog of This Book’s Problem Universe — seluruh soal yang dirujuk buku ini, terindeks untuk latihan.
  17. Lampiran B — A Complexity Cheat-Sheet — kompleksitas waktu/ruang sekilas pandang, untuk dipakai saat berlatih.
  18. Lampiran C — Glossary of Terms — setiap istilah competitive programming yang dipakai buku ini, didefinisikan di satu tempat.
Untuk siapa buku ini: mahasiswa dan pembelajar mandiri yang sudah menguasai algoritma dan struktur data inti dan ingin mengubah pengetahuan itu menjadi submission yang cepat dan benar di SPOJ dan online judge sejenis.

💬 Diskusi Komunitas