func_code_string: #include <bits/stdc++.h>   using namespace std;   int ans, cnt;   struct Node {     Node *Left = NULL, *Right = NULL;     int value, fix, sz = 1;     long long sum[5] = {};   };   typedef Node *PNode;   PNode root = NULL;   inline int gts(PNode &cur) {     if (cur == NULL) return 0;     return cur->sz;   }   Node nodes[111111];   inline void Init(PNode &cur) {     if (cur) {       cur->sz = gts(cur->Left) + gts(cur->Right) + 1;       int t = 0;       if (cur->Left) {         for (int i = 0; i < 5; ++i) cur->sum[i] = cur->Left->sum[i];         t = cur->Left->sz % 5;       } else {         for (int i = 0; i < 5; ++i) cur->sum[i] = 0;       }       cur->sum[t] += cur->value;       t++;       t %= 5;       if (cur->Right) {         for (int i = 0; i < 5; ++i) {           int T = i + t;           T %= 5;           cur->sum[T] += cur->Right->sum[i];         }       }     }   }   inline void make(PNode a, PNode b, PNode &c) {     if (!b or !a) {       c = b ? b : a;       return;     }     if (a->fix > b->fix) {       make(a->Right, b, a->Right);       c = a;     } else {       make(a, b->Left, b->Left);       c = b;     }     Init(c);   }   inline void split(PNode t, PNode &a, PNode &b, int f) {     if (!t) {       a = b = NULL;       return;     }     if (f < t->value) {       split(t->Left, a, t->Left, f);       b = t;     } else {       split(t->Right, t->Right, b, f);       a = t;     }     Init(t);   }   inline void Insert(int val) {     PNode a, b, c;     split(root, a, c, val);     nodes[cnt].value = val;     nodes[cnt].fix = rand();     b = nodes + cnt++;     Init(b);     make(a, b, root);     make(root, c, root);   }   inline void Delete(PNode &cur, int val) {     if (cur->value == val) {       make(cur->Left, cur->Right, cur);     } else if (val < cur->value) {       Delete(cur->Left, val);     } else       Delete(cur->Right, val);     Init(cur);   }   inline int Find_Min(PNode cur) {     while (cur->Left) cur = cur->Left;     return cur->value;   }   inline int Find_Max(PNode cur) {     while (cur->Right) cur = cur->Right;     return cur->value;   }   int main() {     ios_base::sync_with_stdio(false);     int n, x, y, i, count = 0;     string s;     cin >> n;     for (i = 0; i < n; ++i) {       cin >> s;       if (s ==  add ) {         cin >> x;         count++;         Insert(x);       } else if (s ==  del ) {         cin >> x;         count--;         Delete(root, x);       } else {         if (!count)           printf( %d n , 0);         else           printf( %I64d n , root->sum[2]);       }     }     return 0;   }   