#include <bits/stdc++.h>
#define boost ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define el cout << '\n'
#define sz(a) (ll)a.size()
#define all(a) a.begin(), a.end()
#define file(name) \
if (fopen(name ".inp", "r")) \
{ \
freopen(name ".inp", "r", stdin); \
freopen(name ".out", "w", stdout); \
}
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"
using namespace std;
const int N5 = 1e5 + 5;
const ll MOD = 1e9 + 7;
const ll inf = LLONG_MAX;
int n;
ll s, pre[N5], cnt;
multiset<ll> si;
void solve()
{
cin >> n >> s;
for (int i = 1; i <= n; ++i)
{
ll x;
cin >> x;
pre[i] = pre[i - 1] + x;
}
for (int i = 1; i <= n; ++i)
{
auto it1 = si.lower_bound(pre[i] - s);
auto it2 = si.upper_bound(pre[i] + s);
cnt += distance(si.begin(), it1) + distance(it2, si.end());
si.insert(pre[i]);
}
cout << cnt;
el;
}
int main()
{
boost
file("code");
solve();
RUNTIME;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgYm9vc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIHN6KGEpIChsbClhLnNpemUoKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSBmaWxlKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlmIChmb3BlbihuYW1lICIuaW5wIiwgInIiKSkgICAgICAgICAgIFwKICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBmcmVvcGVuKG5hbWUgIi5pbnAiLCAiciIsIHN0ZGluKTsgIFwKICAgICAgICBmcmVvcGVuKG5hbWUgIi5vdXQiLCAidyIsIHN0ZG91dCk7IFwKICAgIH0KI2RlZmluZSBUSU1FICgxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMpCiNkZWZpbmUgUlVOVElNRSBjZXJyIDw8ICJcblJ1bnRpbWU6ICIgPDwgVElNRSA8PCAicy5cbiIKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTjUgPSAxZTUgKyA1Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3Owpjb25zdCBsbCBpbmYgPSBMTE9OR19NQVg7CgppbnQgbjsKbGwgcywgcHJlW041XSwgY250OwptdWx0aXNldDxsbD4gc2k7Cgp2b2lkIHNvbHZlKCkKewogICAgY2luID4+IG4gPj4gczsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBsbCB4OwogICAgICAgIGNpbiA+PiB4OwogICAgICAgIHByZVtpXSA9IHByZVtpIC0gMV0gKyB4OwogICAgfQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgewogICAgICAgIGF1dG8gaXQxID0gc2kubG93ZXJfYm91bmQocHJlW2ldIC0gcyk7CiAgICAgICAgYXV0byBpdDIgPSBzaS51cHBlcl9ib3VuZChwcmVbaV0gKyBzKTsKICAgICAgICBjbnQgKz0gZGlzdGFuY2Uoc2kuYmVnaW4oKSwgaXQxKSArIGRpc3RhbmNlKGl0Miwgc2kuZW5kKCkpOwogICAgICAgIHNpLmluc2VydChwcmVbaV0pOwogICAgfQoKICAgIGNvdXQgPDwgY250OwogICAgZWw7Cn0KCmludCBtYWluKCkKewogICAgYm9vc3QKICAgIGZpbGUoImNvZGUiKTsKICAgIHNvbHZlKCk7CiAgICBSVU5USU1FOwogICAgcmV0dXJuIDA7Cn0K