This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#define _USE_MATH_DEFINES
#include <cmath>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<int, pi> p3i;
typedef pair<ll, ll> pll;
typedef pair<ll, pll> p3ll;
typedef pair<ll, ld> plld;
typedef pair<double, pi> pd2i;
typedef vector<int> vi;
typedef vector<pi> v2i;
typedef vector<p3i> v3i;
typedef vector<ll> vll;
typedef vector<pll> v2ll;
typedef vector<p3ll> v3ll;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef vector<vi> vvi;
typedef vector<vll> vvl;
typedef priority_queue<int> pq_max;
typedef priority_queue<int, vi, greater<int>> pq_min;
#define loop(n)          for(int i = 0; i < (n); i++)
#define lp(x, s, e)      for(int x = (s); x < (e); x++)
#define lpe(x, s, e)     for(int x = (s); x <= (e); x++)
#define loop_r(n)          for(int i = (n) - 1; i >= 0; i--)
#define lp_r(x, s, e)      for(int x = (e) - 1; x >= (s); x--)
#define lpe_r(x, s, e)     for(int x = (e); x >= (s); x--)
#define MP make_pair
#define PB push_back
#define EmB emplace_back
#define Em emplace
#define len(s)   (int)s.length()
#define sz(v)    (int)v.size()
#define all(a)   a.begin(),a.end()
#define all_r(a)   a.rbegin(),a.rend()
#define clr(x, val)    memset((x), (val), sizeof(x))
#define maxEle *max_element
#define minEle *min_element
#define tests int t; cin >> t; int i_t = 0; while(i_t++ < t)
#define SetPre(n, x)  cout << fixed << setprecision(n) << x
#define endl '\n'
#define kill return 0
#define ceil_i(a, b) ((a+b-1)/b)
#define floor_i(a, b) (a/b)
#define round_i(a, b) ((a+(b/2))/b)
int dx_all[8] = {1, 0, -1, 0, 1, 1, -1, -1},
        dy_all[8] = {0, 1, 0, -1, -1, 1, -1, 1};
int dx[4] = {0, 1, -1, 0},
        dy[4] = {1, 0, 0, -1};
int dx_down[2] = {1, 0},
        dy_down[2] = {0, 1};
const int N = 2e5 + 5;
ll poles[N];
ll n, m;
ll jump(ll ind)
{
    if(ind == n+1) return 0;
    ll ans = 0;
    if(poles[ind + 1] - poles[ind] <= m) ans = jump(ind + 1);
    else
    {
        poles[ind + 1] = poles[ind] + m;
        ans = 1 + jump(ind + 1);
    }
    return ans;
}
int main() {
    cin >> n >> m;
    loop(n) cin >> poles[i+1];
    cout << jump(0);
    kill;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |