公式

A - Wi-Fiの届く範囲 / Wi-Fi Coverage Range 解説 by kyopro_friends


問題文の指示通り、 \(N\) 個の \((X,Y)\) それぞれについて、 \(X^2+Y^2 \leq D^2\) であるかどうかを判定すれば良いです。計算量は \(O(N)\) です。

オーバーフローに注意してください。

実装例 (C++)

#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  long long d;
  cin >> n >> d;

  int ans = 0;
  for(int i=0; i<n; i++){
    long long x, y;
    cin >> x >> y;
    if(x * x + y * y > d * d){
      ans++;
    }
  }

  cout << ans << endl;
}

実装例 (Python)

N, D = map(int, input().split())

ans = 0
for _ in range(N):
  X, Y = map(int,input().split())
  if X * X + Y * Y > D * D:
    ans += 1

print(ans)

投稿日時:
最終更新: