結果
問題 |
No.3067 +10 Seconds Clock
|
ユーザー |
|
提出日時 | 2025-03-22 00:15:46 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 939 bytes |
コンパイル時間 | 18,404 ms |
コンパイル使用メモリ | 378,120 KB |
実行使用メモリ | 9,088 KB |
最終ジャッジ日時 | 2025-03-22 00:16:08 |
合計ジャッジ時間 | 16,274 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 WA * 1 |
ソースコード
use proconio::input; use std::collections::BTreeSet; use proconio::marker::Usize1; fn main() { input! { n: usize, t: usize, a: [usize; n - 1], k: usize, x: [Usize1; k] } let x: BTreeSet<_> = x.into_iter().collect(); if !ok(k, t, &a, &x) { println!("-1"); return; } let mut l = -1; let mut r = k as isize; while l + 1 < r { let m = (l + r) as usize / 2; if ok(m, t, &a, &x) { r = m as isize; } else { l = m as isize; } } println!("{}", r); } fn ok(mut m:usize, t:usize, a:&Vec<usize>, x:&BTreeSet<usize>) -> bool { let mut now = t; let mut res = true; for i in 0..a.len() { res &= now > a[i]; if !res { break } now -= a[i]; if x.contains(&i) && m > 0 { now += 10; m -= 1; } } res }