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

set的查询 - 题解

#include<bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    set<int>set;
    int n,m,t;cin>>n>>m;
    
    for(int i=0;i<n;++i)
    {
        cin>>t;
        set.insert(t);
    }
    
    for(int i=0;i<m;++i)
    {
        int c,num;
        cin>>c>>num;
        auto it = set.find(num);

        if(c==1)
        {
            if(it!=set.end())
            {
                cout<<num;
            }
            else
            {
                cout<<"NO";
            } 
        }
        else if(c==2)
        {
            it = set.lower_bound(num);
            if((--it)!=set.end())
            {
                cout<<*it<<endl;
            }
            else cout<<"NO";
        }
        else if(c==3)
        {
            it = set.upper_bound(num);
            if(it!=set.end())
            {
                cout<<*it<<endl;
            }
            else
            {
                cout<<"NO";
            }
        }
     cout<<endl;
    }
    return 0;
}
0 回复 0 转发 0 喜欢 4 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!