题意:有三种类型的操作
1.”add x”表示往集合里添加数x。2.“del x”表示将集合中数x删除。3.“sum”求出从小到大排列的集合中下标模5为3的数的和。
集合中的数都是唯一的。集合是一个有序的集合。
# include<stdio.h> # include<algorithm> # include<iostream> # include<string.h> # include<map> # include<vector> using namespace std; int main() { int i,a,n; char s[10]; vector<int>pp;///动态的数组 vector<int>::iterator it;///迭达器 while(~scanf("%d",&n)) { pp.clear(); while(n--) { scanf("%s",s); if(s[0]=='a') { scanf("%d",&a); it=lower_bound(pp.begin(),pp.end(),a);///插入的位置 pp.insert(it,a);///代插入的位置插入a } else if(s[0]=='d') { scanf("%d",&a); it=lower_bound(pp.begin(),pp.end(),a);///删除的位置 pp.erase(it); } else { __int64 sum=0; for(i=2; i<pp.size(); i+=5) sum+=pp[i]; printf("%I64d\n",sum); } } } return 0; }
时间: 2024-11-06 09:59:16