import java.util.Scanner; import java.util.ArrayList; public class Main{ public static void main(String[] args){ //读取数据 Scanner in = new Scanner(System.in); int M = in.nextInt(); ArrayList<Integer> items = new ArrayList<Integer>(); while(in.hasNext()){ items.add(in.nextInt()); } Integer[] input = items.toArray(new Integer[0]); //基本情况 if(M <2 || input.length==0) {System.out.println(M); return;} //初始化 多一个方便处理 int [] dp = new int[input.length+1]; dp[0] = M; int max = 0; //动态规划,如果能量不足 就不能继续更新了 for(int i = 1; i<= input.length;i++){ if(dp[i-1] >=2) dp[i] = dp[i-1]-2 + input[i-1]; if(i>=2 && dp[i-2] >=3) dp[i] = Math.max(dp[i],dp[i-2] - 3 + input[i-1]); max = Math.max(dp[i],max); } System.out.println(max); } }