結果

問題 No.3557 KCPC or KUPC 2
コンテスト
ユーザー urectanc
提出日時 2026-05-29 19:37:43
言語 Rust
(1.94.0 + proconio + num + itertools)
コンパイル:
/usr/bin/rustc_custom
実行:
./target/release/main
結果
WA  
実行時間 -
コード長 1,002 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,477 ms
コンパイル使用メモリ 180,976 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-05-29 19:38:03
合計ジャッジ時間 5,430 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge4_1
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点1 10 % AC * 27 WA * 3
部分点2 40 % AC * 19 WA * 11
部分点3 50 % AC * 16 WA * 14
合計 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

use proconio::input;

fn main() {
    input! {
        n: u128,
        a: u128, b: u128, c: u128,
        d: u128, e: u128, f: u128,
    }

    fn calc(x: u128, y: u128, z: u128, m: u128) -> u128 {
        let offset = x.saturating_mul(m);
        let (q, r) = (m / y, m % y);
        let add = z.saturating_mul(q.saturating_mul(q.saturating_sub(1)) / 2);
        let add2 = r.saturating_mul(q.saturating_mul(z));

        offset.saturating_add(add).saturating_add(add2)
    }

    let solve = |x: u128, y: u128, z: u128| {
        let mut ng = 0u128;
        let mut ok = n;

        while ok.abs_diff(ng) > 1 {
            let mid = ok.midpoint(ng);
            if calc(x, y, z, mid) >= n {
                ok = mid;
            } else {
                ng = mid;
            }
        }
        ok
    };

    let p = solve(a, b, c);
    let q = solve(d, e, f);
    if p < q {
        println!("KCPC");
    } else if p > q {
        println!("KUPC");
    } else {
        println!("Same");
    }
}
0