Problem p02551 (C++) — buggy submission, verdict: Time Limit Exceeded

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define sz(a) a.size()
#define all(a) a.begin(), a.end()
#define lb lower_bound
#define ub upper_bound
#define owo                                                                    \\
  ios_base::sync_with_stdio(0);                                                \\
  cin.tie(0);
#define MOD (ll)(998244353)
#define INF (ll)(1e18)
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d)                                                              \\
  for (long blockTime = 0;                                                     \\
       (blockTime == 0 ? (blockTime = clock()) != 0 : false);                  \\
       debug("%s time : %.4fs\\n", d,                                           \\
             (double)(clock() - blockTime) / CLOCKS_PER_SEC))
typedef long long int ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<int, int> pii;
typedef vector<vector<int>> vii;
typedef vector<vector<ll>> VII;
ll gcd(ll a, ll b) {
  if (!b)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  int n, q;
  cin >> n >> q;
  vector<ll> a(n + 2), b(n + 2);
  for (int i = 0; i <= n; i++)
    a[i] = b[i] = n;
  ll ans = (n - 2) * 1LL * (n - 2);
  int h, w;
  h = w = n;
  while (q--) {
    int t, x;
    cin >> t >> x;
    if (t == 1) {
      if (x < w) {
        for (int i = x; i < w; i++)
          a[i] = h;
        w = x;
      }
      ans -= a[x] - 2;
    } else {
      if (x < h) {
        for (int i = x; i < h; i++)
          b[i] = w;
        h = x;
      }
      ans -= b[x] - 2;
    }
  }
  cout << ans;
}


Error: TLE

Fixed submission:

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define sz(a) a.size()
#define all(a) a.begin(), a.end()
#define lb lower_bound
#define ub upper_bound
#define owo                                                                    \\
  ios_base::sync_with_stdio(0);                                                \\
  cin.tie(0);
#define MOD (ll)(998244353)
#define INF (ll)(1e18)
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d)                                                              \\
  for (long blockTime = 0;                                                     \\
       (blockTime == 0 ? (blockTime = clock()) != 0 : false);                  \\
       debug("%s time : %.4fs\\n", d,                                           \\
             (double)(clock() - blockTime) / CLOCKS_PER_SEC))
typedef long long int ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<int, int> pii;
typedef vector<vector<int>> vii;
typedef vector<vector<ll>> VII;
ll gcd(ll a, ll b) {
  if (!b)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  int n, q;
  cin >> n >> q;
  vector<ll> a(n + 2), b(n + 2);
  for (int i = 0; i <= n; i++)
    a[i] = b[i] = n;
  ll ans = (n - 2) * 1LL * (n - 2);
  int h, w;
  h = w = n;
  while (q--) {
    int t, x;
    cin >> t >> x;
    if (t == 1) {
      w = min(w, x);
      for (int i = 0; i <= h; i++)
        a[i] = w;

      ans -= b[x] - 2;
    } else {
      h = min(h, x);
      for (int i = 0; i <= w; i++)
        b[i] = h;
      ans -= a[x] - 2;
    }
  }
  cout << ans;
}