結果

問題 No.2923 Mayor's Job
コンテスト
ユーザー rururun
提出日時 2024-11-06 13:48:35
言語 Swift
(6.4)
コンパイル:
swiftc _filename_ -Ounchecked -o a.out
実行:
./a.out
結果
WJ  
(最新)
AC  
(最初)
実行時間 -
コード長 743 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
最終ジャッジ日時 2026-09-19 17:26:59
ジャッジサーバーID
(参考情報)
judge1_0 / judge5_1
このコードへのチャレンジ
(要ログイン)

ソースコード

diff #
raw source code

let nk = readLine()!.split(separator: " ").map{Int($0)!}
let (n,k) = (nk[0],nk[1])
let h = readLine()!.split(separator: " ").map{Int($0)!}
var A = [[Int]]()
for i in 0..<n{
    A.append([i,h[i]])
}
A.sort{ $0[1] < $1[1] }
var X = [Int](), Y = [Int]()
var f = [Bool](repeating: true, count: n)
for i in 1...n{
    let xy = readLine()!.split(separator: " ").map{Int($0)!}
    let (x,y) = (xy[0],xy[1])
    X.append(x); Y.append(y)
}

var cnt = 0
for i in 1..<n{
    for j in 0..<i{
        if f[j] && A[i][1] > A[j][1]{
            let dx = X[A[i][0]] - X[A[j][0]]
            let dy = Y[A[i][0]] - Y[A[j][0]]
            if dx*dx + dy*dy <= k*k{
                f[j] = false
                cnt += 1
            }
        }
    }
}
print(n-cnt)
0