二次联通门 : codeforces 85D. Sum of Medians
/* codeforces 85D. Sum of Medians 正解线段树或是平衡树 结果用vector暴力卡过去了 */ #include <algorithm> #include <iostream> #include <cstdio> #include <vector> using namespace std; void read (int &now) { register char word = getchar (); int temp = 0; for (; !isdigit (word); word = getchar ()) if (word == '-') temp = 1; for (now = 0; isdigit (word); now = now * 10 + word - '0', word = getchar ()); if (temp == 1) now = -now; } int N; std :: vector <int> Flandre; int main (int argc, char *argv[]) { read (N); static char type[10]; register long long Answer; int x, L; for (register int i; N; -- N) { scanf ("%s", type); if (type[0] == 'a') { read (x); Flandre.insert (lower_bound (Flandre.begin (), Flandre.end (), x), x); } else if (type[0] == 'd') { read (x); Flandre.erase (lower_bound (Flandre.begin (), Flandre.end (), x)); } else { L = Flandre.size (); for (i = 2, Answer = 0; i < L; i += 5) Answer += Flandre[i]; printf ("%lld ", Answer); } } return 0; }