結果
| 問題 |
No.202 1円玉投げ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-05-04 21:02:56 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 1,699 ms / 5,000 ms |
| コード長 | 707 bytes |
| コンパイル時間 | 457 ms |
| コンパイル使用メモリ | 7,076 KB |
| 実行使用メモリ | 36,736 KB |
| 最終ジャッジ日時 | 2024-12-22 08:29:01 |
| 合計ジャッジ時間 | 28,022 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 38 |
ソースコード
size = 50
def dist(ax, ay, bx, by):
return (ax - bx) ** 2 + (ay - by) ** 2
def check(x, y):
for dy in xrange(-1, 2):
for dx in xrange(-1, 2):
bx, by = x / size + dx, y / size + dy
if 0 <= bx < 20000 / size + 1 and 0 <= by < 20000 / size + 1:
for cx, cy in block[by][bx]:
if dist(x, y, cx, cy) < 400:
return False
return True
N = int(raw_input())
block = [[[] for i in xrange(20000 / size + 1)] for j in xrange(20000 / size + 1)]
ans = 0
for loop in xrange(N):
x, y = map(int, raw_input().split())
if check(x, y):
ans += 1
block[y / size][x / size].append((x, y))
print ans