3 条题解

  • 0
    @ 2024-4-19 22:32:29
    #include <iostream>
    #include<set>
    using namespace std;
    int main()
    {
    	int n,m,tmp;
    	int opt,x;
    	set<int>num;
    	cin>>n>>m;
    	for(int i=0; i<n; i++)
    		{
    			cin>>tmp;
    			num.insert(tmp);
    		}
    	for(int i=0; i<m; i++)
    		{
    			cin>>opt>>x;
    			set<int>::iterator iter;
    			if(opt==1)
    				{
    					iter=num.find(x);
    					if(iter!=num.end())
    						{
    							cout<<*iter<<endl;
    						}
    					else
    						cout<<"NO"<<endl;
    				}
    			else if(opt==2)
    				{
    					iter=num.lower_bound(x);
    					iter--;
    					if(iter!=num.end())
    						{
    							cout<<*iter<<endl;
    						}
    					else
    						{
    							cout<<"NO"<<endl;
    						}
    				}
    			else
    				{
    					iter=num.upper_bound(x);
    					if(iter!=num.end())
    						{
    							cout<<*iter<<endl;
    						}
    					else
    						{
    							cout<<"NO"<<endl;
    						}
    
    				}
    			
    		}
    	return 0;
    }
    

    信息

    ID
    70
    时间
    2000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    245
    已通过
    77
    上传者