c++中set的新用法

 

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define endl '\n'
#define pq priority_queue
using namespace std;
typedef pair<int,int> pii;

void solve(){
    int n, q;
    cin >> n >> q;
    set<int>st;
    vector<int>ans(n + 1);
    for(int i = 1;i <= n;i ++)
        st.insert(i);
    int idx = 1;
    while(q --){
        int op;
        cin >> op;
        if(op == 1){
            int l, r;
            cin >> l >> r;
            while(1){
                auto f = st.lower_bound(l);
                if(f == st.end()){
                    break;
                }
                if(*f > r){
                    break;
                }
                ans[*f] = idx ++;
                st.erase(f);
            }
        }else{
            int x;
            cin >> x;
            cout << ans[x] << endl;
        }
    }
}

signed main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t = 1;
    while(t--)
    {
        solve();
    }
    return 0;
}
  

 

posted on 2025-02-21 21:27  临江柔  阅读(7)  评论(0)    收藏  举报