
n = gets.to_i
datas = gets.split(" ").map{|n|n.to_i}
equations = []
for num in (1..n) do
  newequation = Array.new(n+1,0)
  newequation[-1] = datas[num-1]
  newequation[num-1] = 0.5
  if num == n
    newequation[0] = 0.5
  else
    newequation[num] = 0.5
  end
  equations << newequation
end

$answer = ""


class GaussJorden
  def initialize ary,nn
    # 係数
    @a = ary
    # 次元の数
    @n = nn
  end

  # 計算・結果出力
  def exec
    @n.times do |k|
      # ピボット係数
      p = @a[k][k]
      # ピボット行を p で除算
      k.upto(@n) { |j| @a[k][j] /= p.to_f }
      # ピボット列の掃き出し
      @n.times do |i|
        next if i == k
        d = @a[i][k]
        k.upto(@n) { |j| @a[i][j] -= d * @a[k][j] }
      end
    end
    # 結果出力
    display_answers
  end

  # 結果出力
  def display_answers
    0.upto(@n - 1) {|k| $answer += @a[k][@n].to_i.to_s + " "}
  end
end

    # 計算クラスインスタンス化
    obj = GaussJorden.new(equations,n)
    # 連立方程式を解く（ガウス・ジョルダン法）
obj.exec
puts $answer