// 若找到,返回下标(1‑based);否则返回 -1 int binarySearchRight(int a[], int n, int x) { if (n <= 0) return -1; int l = 1, r = n; while (l < r) { int mid = (l + r + 1) / 2; if (a[mid] <= x) l = mid; else r = mid - 1; } return (a[l] == x) ? l : -1; }