N = gets.to_i c = gets.split.map(&:to_i).sort dp = [[0, 0]] * (N+1) (1 .. N).each do |s| dp1 = [] (0 .. N-s).each do |l| b1, a1 = dp[l] b2, a2 = dp[l+1] a1 += c[l+s-1] a2 += c[l] dp1[l] = [ [a1, b1], [a2, b2], ].max_by { |(a, b)| a.abs - b.abs } end dp = dp1 end a, b = dp[0] puts a.abs - b.abs