N = gets.to_i A = gets.split.map(&:to_i) if N == 2 puts "1 0" exit end x = N / 2 pos = [] N.times do |i| a = A[i] pos << i if a <= x end if N % 2 == 0 dp = Array.new(N) { Array.new(2, Float::INFINITY) } dp[0][0] = pos[0] dp[0][1] = (pos[0] - 1).abs div = N / 2 1.upto(div - 1) do |d| cur = 2 * d + 1 v = pos[d] dp[d][0] = [dp[d - 1][0] + (cur - 1 - v).abs, dp[d - 1][1] + (cur - 1 - v).abs].min dp[d][1] = dp[d - 1][1] + (cur - v).abs end y = dp[div - 1].min puts [x, y].join(' ') else y = 0 cur = 1 pos.each do |v| y += (cur - v).abs cur += 2 end puts [x, y].join(' ') end