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

/*#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;*/
#include <algorithm>
#include <bits/stdc++.h>
#include <ctype.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define S second
#define F first
#define f(i, n) for (ll i = 0; i < n; i++)
#define f1(i, n) for (ll i = 1; i <= n; i++)
#define fb(i, n) for (ll i = n - 1; i >= 0; i--)
#define fb1(i, n) for (ll i = n; i > 0; i--)
#define endd cout << '\\n';
#define deb(x) cout << #x << "=" << x << endl
#define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
#define fr(it, a) for (auto it = a.begin(); it != a.end(); it++)
#define PI 3.1415926535897932384626
#define clr(x) memset(x, 0, sizeof(x))
#define sortall(x) sort(all(x))
#define all(x) x.begin(), x.end()
#define fast                                                                   \\
  ios_base::sync_with_stdio(0);                                                \\
  cin.tie(0);                                                                  \\
  cout.tie(0)
#define vi vector<ll>
#define pii pair<ll, ll>
#define CASES                                                                  \\
  ll t;                                                                        \\
  cin >> t;                                                                    \\
  while (t--)
typedef long long ll;
typedef unsigned long long ull;
// typedef
// tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
// indexed_set; typedef
// tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
//*X.find_by_order()
// X.order_of_key()
struct cmp {
  bool operator()(ll a, ll b) { return (a > b); }
};
ll mod = 1000000007;
const ll N = 100005;
int main() {
  fast;

  ll x, k, d;
  cin >> x >> k >> d;
  x = abs(x);
  ll c = x / d;
  //  cout<<c<<endl;
  ll z = k - c;
  if (c >= k) {
    cout << abs(x - k * d);
  } else {
    ll x1 = x - c * d;
    ll x2 = abs(x - (c + 1) * d);
    if (x1 <= x2) {
      if (z % 2) {
        cout << x2;
      } else {
        cout << x1;
      }
    } else {
      if (z % 2) {
        cout << x2;
      } else {
        cout << x1;
      }
    }
  }
  return 0;
}


Error: WA

Fixed submission:

/*#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;*/
#include <algorithm>
#include <bits/stdc++.h>
#include <ctype.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define S second
#define F first
#define f(i, n) for (ll i = 0; i < n; i++)
#define f1(i, n) for (ll i = 1; i <= n; i++)
#define fb(i, n) for (ll i = n - 1; i >= 0; i--)
#define fb1(i, n) for (ll i = n; i > 0; i--)
#define endd cout << '\\n';
#define deb(x) cout << #x << "=" << x << endl
#define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
#define fr(it, a) for (auto it = a.begin(); it != a.end(); it++)
#define PI 3.1415926535897932384626
#define clr(x) memset(x, 0, sizeof(x))
#define sortall(x) sort(all(x))
#define all(x) x.begin(), x.end()
#define fast                                                                   \\
  ios_base::sync_with_stdio(0);                                                \\
  cin.tie(0);                                                                  \\
  cout.tie(0)
#define vi vector<ll>
#define pii pair<ll, ll>
#define CASES                                                                  \\
  ll t;                                                                        \\
  cin >> t;                                                                    \\
  while (t--)
// typedef long long ll;
typedef unsigned long long ll;
// typedef
// tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
// indexed_set; typedef
// tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
//*X.find_by_order()
// X.order_of_key()
struct cmp {
  bool operator()(ll a, ll b) { return (a > b); }
};
ll mod = 1000000007;
const ll N = 100005;
int main() {
  fast;
  ll n;
  cin >> n;
  ll a[n];
  ll ans = 0, c = 0;
  f(i, n) { cin >> a[i]; }
  return 0;
}