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

set的查询 - 题解

#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;
}
0 回复 0 转发 0 喜欢 2 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!