absi2011's Blog & Daily Life.

全新的开始       我要省选翻盘       I wanna AK in 高考\化学       自此,生无可恋
100729 F 解题报告
100722 B 解题报告

85 D "解题报告"

absi2011 posted @ Dec 07, 2015 12:54:42 PM in 刷题记录 with tags 模拟 CF , 444 阅读

俗话说的好,暴力出奇迹!

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;
}

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter