結果
| 問題 | No.3295 Buying Bottled Water |
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2025-10-27 19:05:01 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 31 ms / 2,000 ms |
| コード長 | 1,435 bytes |
| 記録 | |
| コンパイル時間 | 236 ms |
| コンパイル使用メモリ | 11,904 KB |
| 実行使用メモリ | 10,240 KB |
| 最終ジャッジ日時 | 2025-10-27 19:05:03 |
| 合計ジャッジ時間 | 2,027 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
import sys
import math
def hitung_botol_minimum(N: int) -> int:
"""
Menghitung minimum botol 500 ml yang harus dibeli agar kekurangan air < 100 ml.
N: target volume air (ml).
"""
# Volume air minimum yang harus dimiliki kura-kura agar kekurangan < 100 ml (yaitu kekurangan <= 99 ml).
# V_total harus memenuhi: N - V_total <= 99 => V_total >= N - 99
volume_diperlukan = N - 99
# Jika volume yang diperlukan <= 0 (yaitu N <= 99),
# maka 0 ml yang dimiliki saat ini sudah memenuhi syarat (kekurangan N < 100).
if volume_diperlukan <= 0:
return 0
# Jika volume yang diperlukan > 0, kita hitung berapa botol 500 ml yang dibutuhkan.
# Karena kita ingin mencapai atau melebihi volume_diperlukan, ini adalah operasi pembulatan ke atas (ceiling).
volume_per_botol = 500
# Metode Pembulatan ke Atas menggunakan pembagian integer: ceil(X / Y) = (X + Y - 1) // Y
botol_minimum = (volume_diperlukan + volume_per_botol - 1) // volume_per_botol
return botol_minimum
# --- Bagian Utama Program ---
try:
# Membaca input N dari stdin
N_input_str = sys.stdin.read().strip()
if N_input_str:
# Batasan N hingga 10^9, yang dapat ditangani oleh integer standar Python
N = int(N_input_str)
hasil = hitung_botol_minimum(N)
print(hasil)
except Exception:
# Menangani kasus jika input tidak valid
pass
vjudge1