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