結果
問題 |
No.871 かえるのうた
|
ユーザー |
![]() |
提出日時 | 2019-09-08 00:02:50 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 927 bytes |
コンパイル時間 | 15,508 ms |
コンパイル使用メモリ | 378,064 KB |
実行使用メモリ | 5,908 KB |
最終ジャッジ日時 | 2024-06-27 13:55:37 |
合計ジャッジ時間 | 15,431 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 41 WA * 8 |
ソースコード
use std::vec::Vec; use std::cmp::min; use std::cmp::max; fn read<T: std::str::FromStr>() -> T { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim().parse().ok().unwrap() } fn read_vec<T: std::str::FromStr>() -> Vec<T> { read::<String>().split_whitespace().map(|e| e.parse().ok().unwrap()).collect() } fn main() { let (n, k) = { let v: Vec<usize> = read_vec(); (v[0], v[1] - 1) }; let x: Vec<i64> = read_vec(); let a: Vec<i64> = read_vec(); let mut ans: usize = 1; let mut wave_range = x[k] + a[k]; // 右側のカエル for i in k+1..n { if wave_range >= x[i] { wave_range = max(wave_range, x[i] + a[i]); ans += 1; } } let mut wave_range = x[k] - a[k]; // 左側のカエル for i in (0..k).rev() { if wave_range <= x[i] { wave_range = min(wave_range, x[i] - a[i]); ans += 1; } } println!("{}", ans); }