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

/// S->----------------------------------------------------|
/// R->--------------</AUTHOR - SRIJAN DE>-----------------|
/// I->--------</https://thesrijande.github.io/>-----------|
/// J->----</JALPAIGURI GOVERNMENT ENGINEERING COLLEGE>----|
/// A->------------</INFORMATION TECHNOLOGY>---------------|
/// N->----------------------------------------------------|
#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using ull = unsigned long long;
using ld = long double;
#define int int64_t
#define mem(a, ss) memset(a, ss, sizeof(a))
#define b_s binary_search
#define u_b upper_bound
#define l_b lower_bound
#define nl cout << endl
#define pb push_back
#define pf push_front
#define ppb pop_back
#define ppf pop_front
#define in insert
#define fi first
#define se second
#define umap unordered_map
#define pqueue priority_queue
#define rr return
#define bits(n) __builtin_popcount(n)
const int N = 1e6 + 7;
const int MOD = (int)1e9 + 7;
const int MOD1 = (int)1e9 + 9;
const int MOD2 = 998244353;
const ld pi = atan2(0, -1);
const ld eps = 1e-9;
int tests = 1;
int test = 1;
template <class x, class y> x max(x a, y b) { return (a > b) ? a : b; }
template <class x, class y> x min(x a, y b) { return (a < b) ? a : b; }
template <class x, class y> x log(x n, y r) {
  return (n > r - 1) ? 1 + log(n / r, r) : 0;
}

bool isprime(int n);
bool ispalin(int num);
bool isleapyear(int year);
int __lcm(int a, int b);
int power(int x, int y);
int digitsum(int n);
int fact(int n);
int npr(int n, int r);
int ncr(int n, int r);
int evensum(int n);
int oddsum(int n);
int find_set(int v);
void make_set(int v);
void union_sets(int a, int b);
void sorts(string &str);

///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'
vector<int> adj[N], subset;
int vis[N] = {0};
///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.

int32_t main() {
  auto start = clock();
  ios_base::sync_with_stdio(0);
  cout.tie(0);
  cin.tie(0);
#ifndef ONLINE_JUDGE
  {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    freopen("error.txt", "w", stderr);
  }
#endif

  //  cout<<fixed;
  //  cout<<scientific;
  //  cout<<fixed<<setprecision(12);
  // cin >> tests;
  for (test = 1; test <= tests; test++) {
    // cout<<"Case #"<<test<<": ";
    ///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.

    int n;
    cin >> n;
    int a[n + 1], sum = 0, s2 = 0;
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      sum = (sum ^ a[i]);
      if (i > 0)
        s2 = (s2 ^ a[i]);
    }
    // cout << sum << s2 << endl;
    // cout << i;
    for (int j = 0; j < n; j++) {
      cout << ((s2 ^ a[j]) ^ a[0]) << ' ';
    }

    ///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.
  }
  cerr << endl
       << endl
       << endl
       << "Time : " << double(clock() - start) / CLOCKS_PER_SEC << endl;
  return 0;
}

bool isprime(int n) {
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0)
      return false;
  }
  return true;
}

bool ispalin(int num) {
  bool flag = false;
  int digit, rev = 0, n = num;
  do {
    digit = num % 10;
    rev = (rev * 10) + digit;
    num = num / 10;
  } while (num != 0);
  if (rev == n)
    flag = true;
  return flag;
}

bool isleapyear(int year) {
  if (year % 400 == 0)
    return true;

  if (year % 100 == 0)
    return false;

  if (year % 4 == 0)
    return true;
  return false;
}

int __lcm(int a, int b) { return (a * b) / __gcd(a, b); }

int power(int x, int y) {
  int temp;
  if (y == 0)
    return 1;
  temp = pow(x, y / 2);
  if (y % 2 == 0)
    return temp * temp;
  else
    return x * temp * temp;
}

int digitsum(int n) {
  int c = 0;
  while (n > 0) {
    c++;
    n /= 10;
  }
  return c;
}

int fact(int n) {
  if (n <= 1)
    return 1;
  return n * fact(n - 1);
}

int ncr(int n, int r) {
  long long p = 1, k = 1;
  if (n - r < r)
    r = n - r;

  if (r != 0) {
    while (r) {
      p *= n;
      k *= r;
      int m = __gcd(p, k);
      p /= m;
      k /= m;
      n--;
      r--;
    }
  } else
    p = 1;
  return p;
}

int npr(int n, int r) { return fact(n) / fact(n - r); }

int evensum(int n) { return (n / 2 * (n / 2 + 1)); }

int oddsum(int n) { return (((n + 1) / 2) * ((n + 1) / 2)); }

void sorts(string &str) { sort(str.begin(), str.end()); }


Error: TLE

Fixed submission:

/// S->----------------------------------------------------|
/// R->--------------</AUTHOR - SRIJAN DE>-----------------|
/// I->--------</https://thesrijande.github.io/>-----------|
/// J->----</JALPAIGURI GOVERNMENT ENGINEERING COLLEGE>----|
/// A->------------</INFORMATION TECHNOLOGY>---------------|
/// N->----------------------------------------------------|
#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using ull = unsigned long long;
using ld = long double;
#define int int64_t
#define mem(a, ss) memset(a, ss, sizeof(a))
#define b_s binary_search
#define u_b upper_bound
#define l_b lower_bound
#define nl cout << endl
#define pb push_back
#define pf push_front
#define ppb pop_back
#define ppf pop_front
#define in insert
#define fi first
#define se second
#define umap unordered_map
#define pqueue priority_queue
#define rr return
#define bits(n) __builtin_popcount(n)
const int N = 1e6 + 7;
const int MOD = (int)1e9 + 7;
const int MOD1 = (int)1e9 + 9;
const int MOD2 = 998244353;
const ld pi = atan2(0, -1);
const ld eps = 1e-9;
int tests = 1;
int test = 1;
template <class x, class y> x max(x a, y b) { return (a > b) ? a : b; }
template <class x, class y> x min(x a, y b) { return (a < b) ? a : b; }
template <class x, class y> x log(x n, y r) {
  return (n > r - 1) ? 1 + log(n / r, r) : 0;
}

bool isprime(int n);
bool ispalin(int num);
bool isleapyear(int year);
int __lcm(int a, int b);
int power(int x, int y);
int digitsum(int n);
int fact(int n);
int npr(int n, int r);
int ncr(int n, int r);
int evensum(int n);
int oddsum(int n);
int find_set(int v);
void make_set(int v);
void union_sets(int a, int b);
void sorts(string &str);

///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'
vector<int> adj[N], subset;
int vis[N] = {0};
///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.

int32_t main() {
  auto start = clock();
  ios_base::sync_with_stdio(0);
  cout.tie(0);
  cin.tie(0);
#ifndef ONLINE_JUDGE
  {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    freopen("error.txt", "w", stderr);
  }
#endif

  //  cout<<fixed;
  //  cout<<scientific;
  //  cout<<fixed<<setprecision(12);
  // cin >> tests;
  for (test = 1; test <= tests; test++) {
    // cout<<"Case #"<<test<<": ";
    ///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.

    int n;
    cin >> n;
    int a[n + 1], sum = 0;
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      sum = (sum ^ a[i]);
    }
    set<int> s;
    int b, i, c;
    for (i = 1;; i++) {
      for (int j = 0; j < n; j++) {
        if ((sum ^ i) == a[j]) {
          s.in(j);
          b = j;
          c = i;
          break;
        }
      }
      if (s.size() == 1)
        break;
    }
    // cout << i;
    for (int j = 0; j < n; j++) {
      cout << ((i ^ a[j]) ^ a[b]) << ' ';
    }

    ///.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.
  }
  cerr << endl
       << endl
       << endl
       << "Time : " << double(clock() - start) / CLOCKS_PER_SEC << endl;
  return 0;
}

bool isprime(int n) {
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0)
      return false;
  }
  return true;
}

bool ispalin(int num) {
  bool flag = false;
  int digit, rev = 0, n = num;
  do {
    digit = num % 10;
    rev = (rev * 10) + digit;
    num = num / 10;
  } while (num != 0);
  if (rev == n)
    flag = true;
  return flag;
}

bool isleapyear(int year) {
  if (year % 400 == 0)
    return true;

  if (year % 100 == 0)
    return false;

  if (year % 4 == 0)
    return true;
  return false;
}

int __lcm(int a, int b) { return (a * b) / __gcd(a, b); }

int power(int x, int y) {
  int temp;
  if (y == 0)
    return 1;
  temp = pow(x, y / 2);
  if (y % 2 == 0)
    return temp * temp;
  else
    return x * temp * temp;
}

int digitsum(int n) {
  int c = 0;
  while (n > 0) {
    c++;
    n /= 10;
  }
  return c;
}

int fact(int n) {
  if (n <= 1)
    return 1;
  return n * fact(n - 1);
}

int ncr(int n, int r) {
  long long p = 1, k = 1;
  if (n - r < r)
    r = n - r;

  if (r != 0) {
    while (r) {
      p *= n;
      k *= r;
      int m = __gcd(p, k);
      p /= m;
      k /= m;
      n--;
      r--;
    }
  } else
    p = 1;
  return p;
}

int npr(int n, int r) { return fact(n) / fact(n - r); }

int evensum(int n) { return (n / 2 * (n / 2 + 1)); }

int oddsum(int n) { return (((n + 1) / 2) * ((n + 1) / 2)); }

void sorts(string &str) { sort(str.begin(), str.end()); }