#include<bits/stdc++.h> using namespace std; int m,k; struct cmp { bool operator()(const int a,const int b) const{ if(abs(a-b)<=k) return false; return a<b; } }; set<int,cmp> w; int main() { cin>>m>>k; string s; int x; for(int i=1;i<=m;i++) { cin>>s>>x; if(s[0]=='a') { w.insert(x); } else if(s[0]=='d') w.erase(x); else if(w.find(x)!=w.end()) puts("Yes"); else puts("No"); } }
时间: 2024-04-19 13:29:09 浏览: 150
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
这是一个使用C++标准库中的set容器实现的简单程序。程序首先读取输入的整数m和k。然后,它进入一个循环,循环m次。在每次循环中,程序读取一个字符串s和一个整数x。
- 如果s的第一个字符是'a',则将x插入到set容器w中。
- 如果s的第一个字符是'd',则将x从set容器w中删除。
- 如果x在set容器w中存在,则输出"Yes",否则输出"No"。
这个程序使用了一个自定义比较函数cmp,该函数定义了元素之间的比较规则。在这种情况下,它比较两个元素的差值是否小于等于k。如果是,则返回false,即两个元素相等;否则,返回a<b判断结果。
注意,这段代码可能存在一些问题,例如没有处理输入错误、输入范围超出等情况。在实际使用中,需要根据具体需求进行进一步调整和完善。
阅读全文