Problem p02726 (C++)

Buggy submission (status: Runtime Error):
#define ll long long
#define pub push_back
#define pob pop_back
#define puf push_front
#define pof pop_front
#define mp make_pair
#define fo(i, n) for (ll i = 0; i < n; i++)
// #include<bits/stdc++.h>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>
ll pi = acos(-1);
ll z = 1000000007;
ll inf = 100000000000000000;
ll p1 = 37;
ll p2 = 53;
ll mod1 = 202976689;
ll mod2 = 203034253;
ll gcd(ll a, ll b) {
  if (b > a)
    return gcd(b, a);
  if (b == 0)
    return a;
  return gcd(b, a % b);
}
ll power(ll a, ll b, ll p) {
  if (b == 0)
    return 1;
  ll c = power(a, b / 2, p);
  if (b % 2 == 0)
    return ((c * c) % p);
  else
    return ((((c * c) % p) * a) % p);
}
ll inverse(ll a, ll n) { return power(a, n - 2, n); }
ll max(ll a, ll b) {
  if (a > b)
    return a;
  return b;
}
ll left(ll i) { return ((2 * i) + 1); }
ll right(ll i) { return (2 * (i + 1)); }
// ios_base::sync_with_stdio(0);
// cin.tie(0); cout.tie(0);
using namespace std;
void solve() {
  ll n, x, y;
  cin >> n >> x >> y;
  // x-- ; y-- ;
  ll dist[n + 1];
  fo(i, n + 1) dist[i] = 0;
  ll a = min(x, y);
  ll b = max(x, y);

  for (ll i = 1; i <= n; i++) {
    for (ll j = i + 1; j <= n; j++) {
      ll d = min(j - i, abs(a - i) + 1 + abs(b - j));
      dist[d]++;
    }
  }
  for (ll i = 1; i < n; i++) {
    cout << dist[i] << '\n';
  }
  return;
}

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
#ifndef ONLINE_JUDGE
  freopen("inputf.txt", "r", stdin);
  freopen("outputf.txt", "w", stdout);
  freopen("error.txt", "w", stderr);
#endif

  ll t;
  // cin >> t ;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}

Fixed submission:
#define ll long long
#define pub push_back
#define pob pop_back
#define puf push_front
#define pof pop_front
#define mp make_pair
#define fo(i, n) for (ll i = 0; i < n; i++)
// #include<bits/stdc++.h>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>
ll pi = acos(-1);
ll z = 1000000007;
ll inf = 100000000000000000;
ll p1 = 37;
ll p2 = 53;
ll mod1 = 202976689;
ll mod2 = 203034253;
ll gcd(ll a, ll b) {
  if (b > a)
    return gcd(b, a);
  if (b == 0)
    return a;
  return gcd(b, a % b);
}
ll power(ll a, ll b, ll p) {
  if (b == 0)
    return 1;
  ll c = power(a, b / 2, p);
  if (b % 2 == 0)
    return ((c * c) % p);
  else
    return ((((c * c) % p) * a) % p);
}
ll inverse(ll a, ll n) { return power(a, n - 2, n); }
ll max(ll a, ll b) {
  if (a > b)
    return a;
  return b;
}
ll left(ll i) { return ((2 * i) + 1); }
ll right(ll i) { return (2 * (i + 1)); }
// ios_base::sync_with_stdio(0);
// cin.tie(0); cout.tie(0);
using namespace std;
void solve() {
  ll n, x, y;
  cin >> n >> x >> y;
  // x-- ; y-- ;
  ll dist[n + 1];
  fo(i, n + 1) dist[i] = 0;
  ll a = min(x, y);
  ll b = max(x, y);

  for (ll i = 1; i <= n; i++) {
    for (ll j = i + 1; j <= n; j++) {
      ll d = min(j - i, abs(a - i) + 1 + abs(b - j));
      dist[d]++;
    }
  }
  for (ll i = 1; i < n; i++) {
    cout << dist[i] << '\n';
  }
  return;
}

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  /*#ifndef ONLINE_JUDGE
  freopen("inputf.txt" , "r" , stdin) ;
  freopen("outputf.txt" , "w" , stdout) ;
  freopen("error.txt" , "w" , stderr) ;
  #endif*/

  ll t;
  // cin >> t ;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}