SDUT2159 Ivan comes again!(省赛原题)(STL)

网友投稿 235 2022-11-05


SDUT2159 Ivan comes again!(省赛原题)(STL)

示例输入

4 add 2 3 find 1 2 remove 2 3 find 1 2 0

示例输出

Case 1: 2 3 -1

题意:跟hello world题意差不多,第一行N个操作,“add”是加入容器一个数对,“remove”是在容器中删除这个数对,“find”是在容器中查找比这个数对都大的数对,没找到输出-1,如果有多个,行最小优先,行最小有多个,列最小优先。

pair->second是第二个元素,用一个set存放set,set中的元素输入的时候就自动从小到大排序,这里的元素是pair类型,如果pair中的第一个数相同,则按第二个数排序,这和题目要求就相符了。还有lower_bound 和upper_bound两个函数。

lower_bound(val): 返回容器中第一个值【大于或等于】val的元素的iterator位置。 upper_bound(val): 返回容器中第一个值【大于】val的元素的iterator位置。

#include#include#include#include#includeusing namespace std;int main(){ pairp; int n; char str[10]; int c=1; while(cin>>n&&n){ cout<<"Case "< >s; while(n--){ scanf("%s%d%d",str,&p.first,&p.second); if(str[0]=='a') s.insert(p); else if(str[0]=='r') s.erase(p); else if(str[0]=='f'){ set< pair >::iterator it; it=s.lower_bound(p); for(;it!=s.end();it++) { if(it->first > p.first && it->second > p.second) { cout<first <<" " << it->second <

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go语言使用MySQL数据库进行增删改查
下一篇:中国审判流程信息公开网案件查询API(中国审判流程信息公开网案件查询官网2020)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~