using System; using System.Linq; using System.Collections.Generic; using System.Collections; namespace Algorithm { class Program { static void Main(string[] args) { var n = int.Parse(Console.ReadLine()); var a = Console.ReadLine().Split().Select(int.Parse).ToArray(); var div = n / 2; if (n % 2 == 1) div++; var continuous = new List(); var cur = a[0]; var count = 1; for (var i = 1; i < n; i++) { if (cur == a[i]) count++; else { continuous.Add(count); count = 1; } cur = a[i]; } continuous.Add(count); var graterOne = false; var total = 0; var loop = 1; foreach (var data in continuous) { if (data > 1) { if (!graterOne && loop != 2) total++; total += data - 1; graterOne = true; } else { if (loop == 1 || (!graterOne && loop == continuous.Count)) total++; graterOne = false; } loop++; } Console.WriteLine(Math.Max(div, total)); } } }