from pulp import * N = int(input()) R = list(map(int, input().split())) prob = LpProblem(name="yukicoder_2918", sense=LpMinimize) X = [LpVariable(name="X"+str(i), cat=LpBinary) for i in range(N)] Y = [LpVariable(name="Y"+str(i), cat=LpBinary) for i in range(N)] M = 10 ** 8 zp = LpVariable(name="Zp", lowBound=0, cat=LpInteger) zm = LpVariable(name="Zm", lowBound=0, cat=LpInteger) z = LpVariable(name="Z", cat=LpBinary) prob += zp <= z * M prob += zm <= (1 - z) * M prob += zp + zm constraint = 0 for i in range(N): constraint += (X[i] - Y[i]) * R[i] prob += X[i] + Y[i] <= 1 prob += zp - zm == constraint prob += lpSum(X) >= 1 prob += lpSum(Y) >= 1 status = prob.solve(PULP_CBC_CMD(msg = False)) print(int(value(prob.objective)))