結果
| 問題 | No.3292 World Map Distance |
| コンテスト | |
| ユーザー |
kona0001
|
| 提出日時 | 2025-09-25 02:51:06 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 1,379 ms / 3,000 ms |
| コード長 | 1,134 bytes |
| コンパイル時間 | 282 ms |
| コンパイル使用メモリ | 8,192 KB |
| 実行使用メモリ | 120,172 KB |
| 最終ジャッジ日時 | 2025-09-25 02:51:37 |
| 合計ジャッジ時間 | 23,529 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 34 |
コンパイルメッセージ
Syntax OK
ソースコード
def solve(n,a,l)
a.map!{|v| v-1 }
a.sort!
kouho = a.dup
kouho << 0
now_slope = 0
now_dist = 0
slope_dif = Hash.new(0)
a.each do |v|
if l%2 == 0
opposite = (v + l/2)%l
kouho << opposite
slope_dif[v] += 2
slope_dif[opposite] -= 2
now_dist += [v,l-v].min
if v < l/2
now_slope -= 1
else
now_slope += 1
end
else
opposite_l = (v + l/2)%l
opposite_r = (v + 1 + l/2)%l
kouho << opposite_l
kouho << opposite_r
slope_dif[v] += 2
slope_dif[opposite_l] -= 1
slope_dif[opposite_r] -= 1
now_dist += [v,l-v].min
if v < l/2
now_slope -= 1
elsif v == l/2
# nothing to do
else
now_slope += 1
end
end
end
kouho.uniq!
kouho.sort!
max = now_dist
pre = 0
kouho.each do |v|
now_dist += (v-pre) * now_slope
max = [max, now_dist].max
now_slope += slope_dif[v]
pre = v
end
max
end
n,X,Y = gets.split.map(&:to_i)
xs = []
ys = []
n.times do
x,y = gets.split.map(&:to_i)
xs << x
ys << y
end
ans = solve(n,xs,X) + solve(n,ys,Y)
puts ans
kona0001