#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5+5;
int n;
ll K, a[N], M[N];
int b[N];
vector<ll> vals;
int m, bit[N];
ll ans = 0;
void update(int p, int v) {
for (; p <= m; p += p & -p) bit[p] += v;
}
int query(ll p) {
int sum = 0;
for (; p > 0; p -= p & -p) sum += bit[p];
return sum;
}
void DNC(int l, int r) {
if (l == r) {
if (a[l] <= K) ans++;
return;
}
int mid = (l + r) >> 1;
DNC(l, mid);
DNC(mid + 1, r);
M[mid] = a[mid];
for (int i = mid - 1; i >= l; i--) M[i] = min(M[i + 1], a[i]);
for (int j = mid + 1; j <= r; j++) M[j] = min(M[j - 1], a[j]);
int j = mid + 1;
for (int i = mid; i >= l; i--) {
while (j <= r && M[j] >= M[i]) {
update(b[j], 1);
j++;
}
ll Q = a[i] + M[i] - K;
int idx = lower_bound(vals.begin(), vals.end(), Q) - vals.begin();
ans += (j - mid - 1) - query(idx);
}
for (int k = mid + 1; k < j; k++) update(b[k], -1);
int i = mid;
for (int j = mid + 1; j <= r; j++) {
while (i >= l && M[i] > M[j]) {
update(b[i], 1);
i--;
}
ll Q = a[j] - M[j] + K;
int idx = upper_bound(vals.begin(), vals.end(), Q) - vals.begin();
ans += query(idx);
}
for (int k = mid; k > i; k--) update(b[k], -1);
}
void solve() {
cin >> n >> K;
for (int i = 1; i <= n; i++) {
cin >> a[i];
vals.push_back(a[i]);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
m = vals.size();
for (int i = 1; i <= n; i++) b[i] = lower_bound(vals.begin(), vals.end(), a[i]) - vals.begin() + 1;
DNC(1, n);
cout << ans << '\n';
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define TASK "INTERVAL"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << clock() << " ms.\n";
#endif
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBOID0gMWU1KzU7CgppbnQgbjsKbGwgSywgYVtOXSwgTVtOXTsKaW50IGJbTl07CnZlY3RvcjxsbD4gdmFsczsKaW50IG0sIGJpdFtOXTsKbGwgYW5zID0gMDsKCnZvaWQgdXBkYXRlKGludCBwLCBpbnQgdikgewogICAgZm9yICg7IHAgPD0gbTsgcCArPSBwICYgLXApIGJpdFtwXSArPSB2Owp9CgppbnQgcXVlcnkobGwgcCkgewogICAgaW50IHN1bSA9IDA7CiAgICBmb3IgKDsgcCA+IDA7IHAgLT0gcCAmIC1wKSBzdW0gKz0gYml0W3BdOwogICAgcmV0dXJuIHN1bTsKfQoKdm9pZCBETkMoaW50IGwsIGludCByKSB7CiAgICBpZiAobCA9PSByKSB7IAogICAgICAgIGlmIChhW2xdIDw9IEspIGFucysrOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPSAobCArIHIpID4+IDE7CiAgICBETkMobCwgbWlkKTsKICAgIEROQyhtaWQgKyAxLCByKTsKICAgIE1bbWlkXSA9IGFbbWlkXTsKICAgIGZvciAoaW50IGkgPSBtaWQgLSAxOyBpID49IGw7IGktLSkgTVtpXSA9IG1pbihNW2kgKyAxXSwgYVtpXSk7CiAgICBmb3IgKGludCBqID0gbWlkICsgMTsgaiA8PSByOyBqKyspIE1bal0gPSBtaW4oTVtqIC0gMV0sIGFbal0pOwogICAgaW50IGogPSBtaWQgKyAxOwogICAgZm9yIChpbnQgaSA9IG1pZDsgaSA+PSBsOyBpLS0pIHsKICAgICAgICB3aGlsZSAoaiA8PSByICYmIE1bal0gPj0gTVtpXSkgewogICAgICAgICAgICB1cGRhdGUoYltqXSwgMSk7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgbGwgUSA9IGFbaV0gKyBNW2ldIC0gSzsKICAgICAgICBpbnQgaWR4ID0gbG93ZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCBRKSAtIHZhbHMuYmVnaW4oKTsKICAgICAgICBhbnMgKz0gKGogLSBtaWQgLSAxKSAtIHF1ZXJ5KGlkeCk7CiAgICB9CiAgICBmb3IgKGludCBrID0gbWlkICsgMTsgayA8IGo7IGsrKykgdXBkYXRlKGJba10sIC0xKTsKICAgIGludCBpID0gbWlkOwogICAgZm9yIChpbnQgaiA9IG1pZCArIDE7IGogPD0gcjsgaisrKSB7CiAgICAgICAgd2hpbGUgKGkgPj0gbCAmJiBNW2ldID4gTVtqXSkgewogICAgICAgICAgICB1cGRhdGUoYltpXSwgMSk7CiAgICAgICAgICAgIGktLTsKICAgICAgICB9CiAgICAgICAgbGwgUSA9IGFbal0gLSBNW2pdICsgSzsKICAgICAgICBpbnQgaWR4ID0gdXBwZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCBRKSAtIHZhbHMuYmVnaW4oKTsKICAgICAgICBhbnMgKz0gcXVlcnkoaWR4KTsKICAgIH0KICAgIGZvciAoaW50IGsgPSBtaWQ7IGsgPiBpOyBrLS0pIHVwZGF0ZShiW2tdLCAtMSk7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBLOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgdmFscy5wdXNoX2JhY2soYVtpXSk7CiAgICB9CiAgICBzb3J0KHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSk7CiAgICB2YWxzLmVyYXNlKHVuaXF1ZSh2YWxzLmJlZ2luKCksIHZhbHMuZW5kKCkpLCB2YWxzLmVuZCgpKTsKICAgIG0gPSB2YWxzLnNpemUoKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgYltpXSA9IGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSwgYVtpXSkgLSB2YWxzLmJlZ2luKCkgKyAxOwogICAgRE5DKDEsIG4pOwogICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICAjZGVmaW5lIFRBU0sgIklOVEVSVkFMIgogICAgaWYgKGZvcGVuKFRBU0siLklOUCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKFRBU0siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oVEFTSyIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZmRlZiBMT0NBTAogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgY2xvY2soKSA8PCAiIG1zLlxuIjsKICAgICNlbmRpZgoKICAgIHJldHVybiAwOwp9