結果
問題 |
No.202 1円玉投げ
|
ユーザー |
|
提出日時 | 2015-05-04 21:03:37 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 3,651 ms / 5,000 ms |
コード長 | 708 bytes |
コンパイル時間 | 348 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 24,192 KB |
最終ジャッジ日時 | 2024-12-22 08:29:45 |
合計ジャッジ時間 | 41,250 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
size = 100 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