List<T> には BinarySearch メソッドがあるけど、それ使っちゃ勉強にならないので、自前実装。
var NX = Console.ReadLine()!.Split(" ").Select(int.Parse).ToArray(); var N = NX[0]; var X = NX[1]; var A = Console.ReadLine()!.Split(" ").Select(int.Parse).ToArray(); var idx = Search(N, X, A); Console.WriteLine(idx + 1); static int Search(int N, int X, int[] A) { var L = 0; var R = N - 1; while (L <= R) { var M = L + (R - L) / 2; if (A[M] == X) { return M; } else if (A[M] < X) { L = M + 1; } else { R = M - 1; } } return -1; }