返回题解分享
讨论 / 题解分享/ 帖子详情

数的范围 - 题解

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef pair<int,int> PII;  
using ll = long long;
using ULL = unsigned long long;
const int N = 1e6+5;

int n, q;
int a[N];
inline void solve() { 
    cin >> n >> q;
    for (int i = 0; i < n; i++) cin >> a[i];
    for (; q-- ;) {
        int x; cin >> x;
        int l = 0 ,r = n - 1;
        while (l < r) {
            int mid = (l + r) >> 1;
            if (a[mid] >= x) r = mid;
            else l = mid + 1;
        } 
        if (a[l] != x) cout << "-1 -1" << endl;
        else {
            cout << l << ' ';
            int l = 0, r = n - 1;
            while (l < r) {
                int mid = (l + r + 1) >> 1;
                if (a[mid] <= x) l = mid;
                else r = mid - 1; 
            }
            cout << l << endl;
        }
    }
}          

int main() { 
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int _ = 1; 
    //int _; cin >> _;
    while (_--) solve();
    return 0;
}
0 回复 0 转发 0 喜欢 5 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!