hdu 4288 Coder 一个很水的版本 >_<

一个很水的版本  >_<

直接vector操作,修改时直接lower_bound找到位置,然后add操作时是a.insert(),del操作时是a.erase(),询问时直接枚举求和。。。

6778229 2012-09-16 21:57:16 Accepted 4288 6843MS 1060K 1154 B G++ yejinru
View Code
 1 #include <iostream>

 2 #include <vector>

 3 #include <cstring>

 4 #include <cstdio>

 5 #include <algorithm>

 6 

 7 using namespace std;

 8 

 9 char s[5];

10 int n;

11 vector<int> a;

12 

13 int main(){

14     //freopen("sum.in","r",stdin);

15     int len,val;

16     vector<int>::iterator it;

17     while(cin>>n){

18         len = 0;

19         a.clear();

20         while(n--){

21             scanf("%s",s);

22             if(s[0]=='s'){

23                 long long ans = 0;

24                 for(int i=2;i<len;i+=5)

25                     ans += a[i];

26                 cout<<ans<<endl;

27             }

28             else if(s[0]=='a'){

29                 len++;

30                 scanf("%d",&val);

31                 it = lower_bound(a.begin(),a.end(),val);

32                 a.insert(it,val);

33             }

34             else{

35                 len--;

36                 scanf("%d",&val);

37                 it = lower_bound(a.begin(),a.end(),val);

38                 a.erase(it);

39             }

40         }

41     }

42     return 0;

43 }

你可能感兴趣的:(code)