func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( O3 )   #pragma GCC target( sse4 )   using namespace std;   template <class T>   T gcd(T a, T b) {     return ((b == 0) ? a : gcd(b, a % b));   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     int n, q;     cin >> n >> q;     vector<int> a(n);     set<int> st;     multiset<int> mlt;     for (int i = 0; i < (int)(n); i++) cin >> a[i], st.insert(a[i]);     sort(a.begin(), a.end());     for (int i = (int)(1); i < (int)(n); i++) mlt.insert(a[i] - a[i - 1]);     int r = a[n - 1], l = a[0];     for (int i = 0; i < (int)(q + 1); i++) {       if (mlt.size()) {         auto it = --mlt.end();         int mx = *it;         cout << r - l - mx <<   n ;       } else         cout << 0 <<   n ;       if (i == q) continue;       int t;       cin >> t;       if (t == 0) {         int x;         cin >> x;         if (*st.begin() == x) {           auto it = st.begin();           it++;           if (it != st.end()) {             auto it2 = mlt.find(*it - *st.begin());             if (it2 != mlt.end()) mlt.erase(it2);           }         } else {           auto it = st.lower_bound(x);           it--;           if (mlt.find(x - *it) != mlt.end()) mlt.erase(mlt.find(x - *it));           auto it1 = it;           it1++;           it1++;           if (it1 != st.end()) {             auto it2 = mlt.find(*it1 - x);             if (it2 != mlt.end()) mlt.erase(it2);             mlt.insert(*it1 - *it);           }         }         auto it = st.find(x);         if (it != st.end()) st.erase(it);       } else {         int x;         cin >> x;         if (st.size()) {           auto it = st.lower_bound(x);           if (it != st.end()) {             mlt.insert(*it - x);             if (it != st.begin()) {               auto it1 = it;               it1--;               mlt.insert(x - *it1);               auto it2 = mlt.find(*it - *it1);               if (it2 != mlt.end()) mlt.erase(it2);             }           } else {             if (it != st.begin()) {               it--;               mlt.insert(x - *it);             }           }         }         st.insert(x);       }       if (st.size()) {         l = *st.begin();         r = *(--st.end());       }     }     return 0;   }   