結果
問題 | No.2923 Mayor's Job |
ユーザー |
👑 |
提出日時 | 2024-10-06 15:47:43 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 25 ms / 2,000 ms |
コード長 | 623 bytes |
コンパイル時間 | 16,583 ms |
コンパイル使用メモリ | 377,504 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-06 15:48:01 |
合計ジャッジ時間 | 15,420 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
use proconio::input; fn main() { // 入力 input!{ n: usize, k: u64, h: [u32; n], xy: [(u64, u64); n], } // ユークリッド距離の2乗を求める関数 let dist2 = |(x1, y1): (u64, u64), (x2, y2): (u64, u64)| x1.abs_diff(x2).pow(2) + y1.abs_diff(y2).pow(2); // 消滅されない神社の数 let ans = (0..n).filter(|&i| { // h_i < h_j かつユークリッド距離がk以下であるものが存在するなら消滅できる // ので // 条件を反転させる !(0..n).any(|j| i != j && h[i] < h[j] && dist2(xy[i], xy[j]) <= k.pow(2)) }).count(); // 出力 println!("{}", ans) }