Problem p02697 (C++) — buggy submission, verdict: Runtime Error

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define ll long long
// increase stack size
#pragma comment(linker, "/STACK:16777216")

ll mxm() { return LLONG_MIN; }
template <typename... Args> ll mxm(ll a, Args... args) {
  return max(a, mxm(args...));
}

ll mnm() { return LLONG_MAX; }
template <typename... Args> ll mnm(ll a, Args... args) {
  return min(a, mnm(args...));
}

template <class T> ostream &operator<<(ostream &os, vector<T> V) {
  os << "[ ";
  for (auto v : V)
    os << v << " ";
  return os << "]";
}
template <class L, class R> ostream &operator<<(ostream &os, pair<L, R> P) {
  return os << "(" << P.first << "," << P.second << ")";
}

#define TRACE
#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1> void __f(const char *name, Arg1 &&arg1) {
  cout << name << " : " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char *names, Arg1 &&arg1, Args &&...args) {
  const char *comma = strchr(names + 1, ',');
  cout.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
#else
#define trace(...) 1
#endif

#define ld long double
#define pll pair<ll, ll>
#define ii pair<int, int>
#define vll vector<ll>
#define vii vector<ii>
#define vi vector<int>
#define vpll vector<pll>
#define vld vector<ld>
#define vvld vector<vld>
#define vvi vector<vi>
#define vvll vector<vll>
#define vvpll vector<vpll>
#define vvii vector<vii>
#define I insert
#define F first
#define S second
#define pb push_back
#define endl "\\n"
#define all(x) x.begin(), x.end()

const int mod = 1e9 + 7;
// 128 bit: __int128
inline int add(int a, int b) {
  a += b;
  if (a >= mod)
    a -= mod;
  return a;
}
inline int sub(int a, int b) {
  a -= b;
  if (a < 0)
    a += mod;
  return a;
}
inline int mul(int a, int b) { return (a * 1ll * b) % mod; }
inline int power(int a, int b) {
  int rt = 1;
  while (b > 0) {
    if (b & 1)
      rt = mul(rt, a);
    a = mul(a, a);
    b >>= 1;
  }
  return rt;
}
inline int inv(int a) { return power(a, mod - 2); }

struct compare {
  bool operator()(const int &a, const int &b) const { return a > b; }
};

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cout << setprecision(25);
  int n, m;
  cin >> n >> m;
  if (n % 2 == 0) {
    // int c = n / 2;
    // if(c & 1){
    vii segs;
    for (int i = 1; i <= n / 4; i++) {
      if (n / 2 - i > i)
        segs.pb({i, n / 2 - i});
    }
    for (int i = n / 2 + 1; i < n; i++) {
      if (n - i + n / 2 + 1 > i)
        segs.pb({i, n - i + n / 2 + 1});
    }
    for (int i = 1; i <= m; i++)
      cout << segs[i - 1].F << ' ' << segs[i - 1].S << endl;
    // }
    // else
    // 	for(int i = 1; i <= m; i++)
    // 		cout << i << ' ' << n - i + 1 << endl;
    return 0;
  }
  for (int i = 1; i <= m; i++) {
    cout << i << ' ' << n - i + 1 << endl;
  }
}

Error: WA

Fixed submission:

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define ll long long
// increase stack size
#pragma comment(linker, "/STACK:16777216")

ll mxm() { return LLONG_MIN; }
template <typename... Args> ll mxm(ll a, Args... args) {
  return max(a, mxm(args...));
}

ll mnm() { return LLONG_MAX; }
template <typename... Args> ll mnm(ll a, Args... args) {
  return min(a, mnm(args...));
}

template <class T> ostream &operator<<(ostream &os, vector<T> V) {
  os << "[ ";
  for (auto v : V)
    os << v << " ";
  return os << "]";
}
template <class L, class R> ostream &operator<<(ostream &os, pair<L, R> P) {
  return os << "(" << P.first << "," << P.second << ")";
}

#define TRACE
#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1> void __f(const char *name, Arg1 &&arg1) {
  cout << name << " : " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char *names, Arg1 &&arg1, Args &&...args) {
  const char *comma = strchr(names + 1, ',');
  cout.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
#else
#define trace(...) 1
#endif

#define ld long double
#define pll pair<ll, ll>
#define ii pair<int, int>
#define vll vector<ll>
#define vii vector<ii>
#define vi vector<int>
#define vpll vector<pll>
#define vld vector<ld>
#define vvld vector<vld>
#define vvi vector<vi>
#define vvll vector<vll>
#define vvpll vector<vpll>
#define vvii vector<vii>
#define I insert
#define F first
#define S second
#define pb push_back
#define endl "\\n"
#define all(x) x.begin(), x.end()

const int mod = 1e9 + 7;
// 128 bit: __int128
inline int add(int a, int b) {
  a += b;
  if (a >= mod)
    a -= mod;
  return a;
}
inline int sub(int a, int b) {
  a -= b;
  if (a < 0)
    a += mod;
  return a;
}
inline int mul(int a, int b) { return (a * 1ll * b) % mod; }
inline int power(int a, int b) {
  int rt = 1;
  while (b > 0) {
    if (b & 1)
      rt = mul(rt, a);
    a = mul(a, a);
    b >>= 1;
  }
  return rt;
}
inline int inv(int a) { return power(a, mod - 2); }

struct compare {
  bool operator()(const int &a, const int &b) const { return a > b; }
};

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cout << setprecision(25);
  int n, m;
  cin >> n >> m;
  assert(n % 2 == 0);
  if (n % 2 == 0) {
    for (int i = 1; i <= m; i++)
      cout << i << ' ' << n - i + 1 << endl;
    return 0;
  }
  for (int i = 1; i <= m; i++) {
    cout << i << ' ' << n - i + 1 << endl;
  }
}