85 D "解题报告"
俗话说的好,暴力出奇迹!
http://codeforces.com/contest/85/problem/D
题意:
你需要对一个集合支持三个操作:(集合是可重的)
插入一个数,删除一个数,求下面这玩意儿

MS C++很遗憾的TLE了,不过没关系
GNU C++能过..
#include<set>
#include<map>
#include<list>
#include<queue>
#include<stack>
#include<math.h>
#include<string>
#include<time.h>
#include<bitset>
#include<vector>
#include<memory>
#include<utility>
#include<stdio.h>
#include<sstream>
#include<fstream>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
vector<int> v;
int main()
{
#ifdef absi2011
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
ios::sync_with_stdio(false);
int n;
scanf("%d",&n);
int i;
int flag=0;
long long ans;
for (i=0;i<n;i++)
{
static char a[105];
int x;
scanf("%s",a);
if (a[0]=='a')
{
scanf("%d",&x);
v.insert(lower_bound(v.begin(),v.end(),x),x);
flag=0;
}
if (a[0]=='d')
{
scanf("%d",&x);
v.erase(lower_bound(v.begin(),v.end(),x));
flag=0;
}
if (a[0]=='s')
{
if (flag==1)
{
cout<<ans<<'\n';
continue;
}
ans=0;
int i;
for (i=2;i<v.size();i+=5)
{
ans+=v[i];
}
cout<<ans<<'\n';
flag=1;
}
}
return 0;
}
评论 (0)