staticconstint N = 1e5 + 7; staticint n, q, a[N], qry;
intmain() { ios::sync_with_stdio(false), cin.tie(0); cin >> n >> q; for (int i = 0; i < n; i++) cin >> a[i]; for (; q--;) { cin >> qry; int lo = 0, hi = n - 1; for (; lo < hi;) { int mid = lo + hi >> 1; if (a[mid] < qry) lo = mid + 1; else hi = mid; } if (a[lo] == qry) { cout << lo << " "; lo = 0, hi = n - 1; for (; lo < hi;) { int mid = lo + hi + 1 >> 1; if (a[mid] > qry) hi = mid - 1; // 注意如果出现 mid - 1的情况,则上面mid 需要 lo + hi + 1操作。这是进过严格验证的。 else lo = mid; }