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

#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <vector>

#include <bits/stdc++.h>
using namespace std;

#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define TRUE (0)
#define FALSE (1)

// This value shold be close to used maximum value.
#define NUM_MAX 20000000005

// void sort(uint32_t *num, uint32_t size);

int main() {
  vector<vector<uint64_t>> arr(0);
  vector<uint64_t> temp_vec(2);
  vector<uint64_t> num_vec(0);
  // string result;
  // vector<long long> res_vec(0);
  // uint64_t res_arr[NUM_MAX];
  // uint32_t sum = 0;
  uint64_t num1, num2;
  uint64_t num, result;
  // uint64_t result;
  double length, mass;

  // uint32_t res_i = 0;
  // string str_temp, str_temp2;
  int64_t temp, temp2, read;
  int64_t i, j, k, l, count, n, x, y, o, size;
  // uint32_t count = 0;
  // string str;
  // uint8_t k_flag;

  cin >> n >> x >> y;

  l = 0;
  for (i = 1; i <= n - 1; i++) {
    for (j = i + 1; j <= n; j++) {
      temp = j - i;
      temp2 = abs(j - y) + 1 + abs(x - i);
      num_vec.push_back(MIN(temp, temp2));
      l++;
    }
  }

  sort(num_vec.begin(), num_vec.end());

  read = 0;
  size = n * (n - 1) / 2;
  for (k = 1; k < n; k++) {
    result = 0;
    for (i = 0; i < size; i++) {
      if ((read + i) >= size) {
        break;
      } else if (num_vec.at(read + i) == k) {
        result++;
      } else {
        read += i;
        break;
      }
    }
    cout << result << endl;
  }

  // cout << fixed << setprecision(10) << mass << endl;

  // for (i=0; i<num; i++) {
  //     cin >> temp_vec.at(0) >> temp_vec.at(1);
  //     arr.push_back(temp_vec);
  // }

  // for (i=0; i<num; i++) {
  //     temp = arr.at(i).at(0);
  //     result[temp] = arr.at(i).at(1);
  // }

  return 0;
}

// void sort(uint32_t *num, uint32_t size) {
//     uint32_t i, j, k;
//     uint32_t sorted_num;
//     uint32_t array[NUM_MAX] = {0};

//     for (i = 1; i < size + 1; i++) {
//         array[num[i - 1]]++;
//     }

//     sorted_num = 0;

//     for (i = 0; i < NUM_MAX; i++) {
//         for (j = 0; j < array[i]; j++) {
//             num[j + sorted_num] = i;
//         }
//         sorted_num += j;
//         j = 0;
//     }

//     return;
// }


Error: TLE

Fixed submission:

#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <vector>

#include <bits/stdc++.h>
using namespace std;

#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define TRUE (0)
#define FALSE (1)

// This value shold be close to used maximum value.
#define NUM_MAX 20000000005

// void sort(uint32_t *num, uint32_t size);

int main() {
  vector<vector<uint64_t>> arr(0);
  vector<uint64_t> temp_vec(2);
  vector<uint64_t> num_vec(0);
  // string result;
  // vector<long long> res_vec(0);
  // uint64_t res_arr[NUM_MAX];
  // uint32_t sum = 0;
  uint64_t num1, num2;
  uint64_t num, result;
  // uint64_t result;
  double length, mass;

  // uint32_t res_i = 0;
  // string str_temp, str_temp2;
  int64_t temp, temp2;
  int64_t i, j, k, l, count, n, x, y, o, size;
  // uint32_t count = 0;
  // string str;
  // uint8_t k_flag;

  cin >> n >> x >> y;

  cout << n << endl;

  l = 0;
  for (i = 1; i <= n - 1; i++) {
    for (j = i + 2; j <= n; j++) {
      temp = j - i;
      temp2 = abs(j - y) + 1 + abs(x - i);
      num_vec.push_back(MIN(temp, temp2));
      l++;
    }
  }

  for (k = 2; k < n; k++) {
    result = 0;
    for (i = 0; i < l; i++) {
      if (num_vec.at(i) == k) {
        result++;
      }
    }
    cout << result << endl;
  }

  // cout << fixed << setprecision(10) << mass << endl;

  // for (i=0; i<num; i++) {
  //     cin >> temp_vec.at(0) >> temp_vec.at(1);
  //     arr.push_back(temp_vec);
  // }

  // for (i=0; i<num; i++) {
  //     temp = arr.at(i).at(0);
  //     result[temp] = arr.at(i).at(1);
  // }

  return 0;
}

// void sort(uint32_t *num, uint32_t size) {
//     uint32_t i, j, k;
//     uint32_t sorted_num;
//     uint32_t array[NUM_MAX] = {0};

//     for (i = 1; i < size + 1; i++) {
//         array[num[i - 1]]++;
//     }

//     sorted_num = 0;

//     for (i = 0; i < NUM_MAX; i++) {
//         for (j = 0; j < array[i]; j++) {
//             num[j + sorted_num] = i;
//         }
//         sorted_num += j;
//         j = 0;
//     }

//     return;
// }