結果
問題 | No.2923 Mayor's Job |
ユーザー |
![]() |
提出日時 | 2024-10-12 14:51:50 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 2,000 ms |
コード長 | 697 bytes |
コンパイル時間 | 958 ms |
コンパイル使用メモリ | 82,920 KB |
最終ジャッジ日時 | 2025-02-24 17:45:02 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <algorithm> #include <iostream> #include <tuple> #include <vector> using Int = long long; int main() { int N, K; std::cin >> N >> K; int H[N]; for (int i = 0; i < N; ++i) std::cin >> H[i]; int X[N], Y[N]; for (int i = 0; i < N; ++i) std::cin >> X[i] >> Y[i]; std::vector<std::tuple<int, int, int>> A(N); for (int i = 0; i < N; ++i) { A[i] = {H[i], X[i], Y[i]}; } std::sort(A.begin(), A.end()); int ans = N; for (int i = 0; i < N; ++i) { auto [a, b, c] = A[i]; bool ok = false; for (int j = i + 1; j < N; ++j) { auto [d, e, f] = A[j]; ok |= a < d && Int(b - e) * (b - e) + Int(c - f) * (c - f) <= Int(K) * K; } ans -= ok; } std::cout << ans << std::endl; }