using System; using System.Collections.Generic; using System.Linq; public class Amatsuki { private static List sushiList; public static void Main() { Console.ReadLine(); sushiList = Console.ReadLine().Split(new char[] {' '}).Select(x => int.Parse(x)).ToList(); sushiList.Add(0); var eatenSushi = 0; do { eatenSushi += ChoiseSushi(); } while (sushiList.Sum() != 0); Console.WriteLine(eatenSushi); Console.ReadKey(); } private static int ChoiseSushi() { var deliciousSushiIndex = sushiList .Select((x, i) => new { Index = i, Sushi = x }) .OrderByDescending(x => x.Sushi) .First() .Index; if (CompareSushi(deliciousSushiIndex)) { return EatSushi(deliciousSushiIndex - 1) + EatSushi(deliciousSushiIndex + 1); } else { return EatSushi(deliciousSushiIndex); } } private static int EatSushi(int index) { var tmp = sushiList[index]; sushiList[index] = 0; if (index + 1 < sushiList.Count) { sushiList[index + 1] = 0; } if (index != 0) { sushiList[index - 1] = 0; } return tmp; } private static bool CompareSushi(int index) { var comp = 0; if (index + 1 < sushiList.Count) { comp += sushiList[index + 1]; } if (index != 0) { comp += sushiList[index - 1]; } return (comp > sushiList[index]) ; } }