結果
| 問題 |
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)
}