結果
問題 | 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