結果
問題 | No.202 1円玉投げ |
ユーザー |
![]() |
提出日時 | 2015-08-20 13:33:55 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 3,111 ms / 5,000 ms |
コード長 | 619 bytes |
コンパイル時間 | 49 ms |
コンパイル使用メモリ | 7,296 KB |
実行使用メモリ | 39,552 KB |
最終ジャッジ日時 | 2024-12-22 10:01:20 |
合計ジャッジ時間 | 34,214 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
コンパイルメッセージ
Syntax OK
ソースコード
# Here your code ! MAX = 20000 CELL = 40 SEG = MAX.div(CELL) + 3 ZONE = SEG.times.map { SEG.times.map { [] } } n = gets.to_i coins = n.times.map { gets.split.map(&:to_i) } puts coins.inject(0) {|s,c| cx, cy = c.map {|v| v / CELL + 1} nears = [cx - 1, cx, cx + 1].product([cy - 1, cy, cy + 1]) intersect = nears.all? do |dx,dy| begin ZONE[dx][dy].empty? || ZONE[dx][dy].all? { |v| 2.times.inject(0) {|q,i| q + (c[i] - v[i]) ** 2} >= 400 } rescue p [dx,dy] end end unless intersect s else ZONE[cx][cy].push(c) s+1 end }