using System; class Program { static void Main() { int N = int.Parse(Console.ReadLine()); var A = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); // すでに隣接で同じなら、どこをswapしてもYes(swapしてもその箇所は壊れない or 他で作れる) for (int i = 0; i < N - 1; i++) { if (A[i] == A[i + 1]) { Console.WriteLine("Yes"); return; } } // swap して隣接が作れるかチェック for (int i = 0; i < N - 1; i++) { // swap (A[i], A[i + 1]) = (A[i + 1], A[i]); // check bool ok = false; for (int j = 0; j < N - 1; j++) { if (A[j] == A[j + 1]) { ok = true; break; } } // 元に戻す (A[i], A[i + 1]) = (A[i + 1], A[i]); if (ok) { Console.WriteLine("Yes"); return; } } Console.WriteLine("No"); } }