結果

問題 No.3681 心の沸騰石
コンテスト
ユーザー urectanc
提出日時 2026-09-05 14:12:34
言語 Rust
(1.97.1 + proconio + num + itertools)
コンパイル:
/usr/bin/rustc_custom
実行:
./target/release/main
結果
AC  
実行時間 0 ms / 2,000 ms
+ 934µs
コード長 1,141 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,131 ms
コンパイル使用メモリ 185,704 KB
実行使用メモリ 6,272 KB
最終ジャッジ日時 2026-09-05 14:13:10
合計ジャッジ時間 5,144 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge6_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 13
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#![allow(unused_assignments)]
use proconio::input;

fn main() {
    input! {
        mut r: i64, p: i64, q: i64,
        mut a: [i64; 3], mut d: i64
    }
    a.sort_unstable();
    a.reverse();

    let mut ans = 0;

    // abc
    let x = a[2].min(r / p);
    a.iter_mut().for_each(|a| *a -= x);
    r -= x * p;
    ans += x;

    // abd
    let x = a[1].min(d).min(r / (p + q));
    a[..=1].iter_mut().for_each(|a| *a -= x);
    d -= x;
    r -= x * (p + q);
    ans += x;

    // aba
    loop {
        let x = (a[0] / 2).min(a[1]).min(r / (p + q));
        a[0] -= 2 * x;
        a[1] -= x;
        r -= x * (p + q);
        ans += x;
        if a[0] < a[1] {
            a.swap(0, 1);
        }
        if x == 0 {
            break;
        }
    }

    // add
    let x = a[0].min(d / 2).min(r / (p + 2 * q));
    a[0] -= x;
    d -= 2 * x;
    r -= x * (p + 2 * q);
    ans += x;

    // aaa
    let x = (a[0] / 3).min(r / (p + 2 * q));
    a[0] -= 3 * x;
    r -= x * (p + 2 * q);
    ans += x;

    // ddd
    let x = (d / 3).min(r / (p + 3 * q));
    d -= 3 * x;
    r -= x * (p + 3 * q);
    ans += x;

    println!("{ans}");
}
0