結果
問題 | No.3067 +10 Seconds Clock |
ユーザー |
|
提出日時 | 2025-03-21 21:44:37 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 15 ms / 2,000 ms |
コード長 | 918 bytes |
コンパイル時間 | 11,739 ms |
コンパイル使用メモリ | 405,648 KB |
実行使用メモリ | 7,324 KB |
最終ジャッジ日時 | 2025-03-21 21:44:55 |
合計ジャッジ時間 | 13,260 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
use proconio::{input, marker::Usize1}; fn main() { match solve() { Some(ans) => println!("{}", ans), None => println!("-1"), } } fn solve() -> Option<usize> { input! { (n, t): (usize, usize), tt: [usize; n - 1], k: usize, xx: [Usize1; k], } let mut exists_clock_flags = vec![false; n]; for &x in &xx { exists_clock_flags[x] = true; } let mut count = t; let mut rem_clocks = 0_usize; let mut used_clocks = 0_usize; for (pos, &t) in tt.iter().enumerate() { rem_clocks += exists_clock_flags[pos] as usize; let require_clocks = (t + 10).saturating_sub(count) / 10; if rem_clocks < require_clocks { return None; } rem_clocks -= require_clocks; used_clocks += require_clocks; count = count + 10 * require_clocks - t; } Some(used_clocks) }