import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] prices = new int[n]; for (int i = 0; i < n; i++) prices[i] = in.nextInt(); if (n == 0) { System.out.println(0); return; } int[] lastState = new int[5]; lastState[0] = 0; lastState[1] = -prices[0]; // 第一次买入 lastState[2] = 0; // 第一次卖出 lastState[3] = -prices[0]; // 第二次买入(买入之后可以持有) lastState[4] = 0; // 第二次卖出 for (int i = 1; i < n; i++) { lastState[0] = lastState[0]; // 什么都不做 lastState[1] = Math.max(lastState[1], lastState[0] - prices[i]); // 第一次买入 lastState[2] = Math.max(lastState[2], lastState[1] + prices[i]); // 第一次卖出 lastState[3] = Math.max(lastState[3], lastState[2] - prices[i]); // 第二次买入 lastState[4] = Math.max(lastState[4], lastState[3] + prices[i]); // 第二次卖出 } System.out.println(Math.max(lastState[2], lastState[4])); // 最多两次卖出后的最大收益 } }