Pemrograman Kompetitif · Pelajaran 7 dari 10
Format masukan dan keluaran
8 menit baca · BelajarCode
Soal pemrograman kompetitif selalu menjelaskan format masukan dan format keluaran dengan sangat rinci. Program dinilai otomatis, jadi satu spasi atau baris yang berbeda pun bisa membuat jawaban dianggap salah.
Contoh soal: jumlah bilangan
Baris pertama berisi bilangan N. Baris kedua berisi N bilangan bulat yang dipisah spasi. Keluarkan jumlah semua bilangan itu.
5 3 8 1 9 4
25
1n = int(input())2angka = list(map(int, input().split()))3print(sum(angka))5 3 8 1 9 4 25
input().split()memecah satu baris menjadi potongan teks.map(int, ...)mengubah setiap potongan menjadi bilangan.- Saat dijalankan di Playground, baris yang kamu ketik ikut tampil di terminal. Pada sistem penilaian, yang dinilai hanya baris yang dicetak program, yaitu
25.
Banyak kasus uji
Banyak soal memuat beberapa kasus uji sekaligus. Baris pertama berisi T, banyaknya kasus.
1t = int(input())2for kasus in range(1, t + 1):3 a, b = map(int, input().split())4 print(f"Kasus #{kasus}: {a + b}")3 1 2 Kasus #1: 3 10 20 Kasus #2: 30 -5 5 Kasus #3: 0
Kesalahan yang sering terjadi
| Kesalahan | Contoh | Perbaikan |
|---|---|---|
| Mencetak kalimat tambahan | Jumlahnya adalah 25 | Cetak persis 25 |
| Memberi teks pada input | input("Masukkan N: ") | Pakai input() tanpa teks |
| Pemisah salah | 25, atau [1, 2, 3] | Ikuti contoh keluaran, misalnya 1 2 3 |
| Desimal tidak sesuai | 2.5 padahal diminta 2 angka desimal | f"{x:.2f}" menghasilkan 2.50 |
Untuk mencetak isi list dipisah spasi, pakai print(*daftar) atau " ".join(map(str, daftar)).
Membaca masukan yang besar
Pada sistem penilaian, membaca ratusan ribu bilangan dengan input() satu per satu bisa terlalu lambat. Peserta yang memakai Python biasanya membaca seluruh masukan sekaligus dengan modul sys, misalnya sys.stdin.read().split(). Pelajari cara ini saat berlatih di situs penilaian otomatis.
Cek pemahaman
Soal meminta keluaran berupa bilangan terbesar. Program mencetak Terbesar: 9. Apa hasil penilaiannya?
Latihan
Rata-rata dua desimal
Baris pertama berisi N, baris kedua berisi N bilangan. Keluarkan bilangan terkecil, terbesar, dan rata-ratanya dengan tepat 2 angka di belakang koma, dipisah spasi dalam satu baris.
Pembahasan
1n = int(input())2data = list(map(int, input().split()))3print(min(data), max(data), f"{sum(data) / n:.2f}")4 7 2 9 4 2 9 5.50
Rata-rata 22 / 4 = 5.5 ditulis 5.50 karena diminta tepat dua angka desimal.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.