結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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
0