#include <bits/stdc++.h>
using namespace std;
#define int long long
const long double PI = 3.14159265359;
template <class T>
struct BIT
{
// 1-indexed
int n;
vector<T> t;
BIT()
{
}
BIT(int _n)
{
n = _n;
t.assign(n + 1, 0);
}
T query(int i)
{
T ans = 0;
for (; i >= 1; i -= (i & -i))
ans += t[i];
return ans;
}
void upd(int i, T val)
{
if (i <= 0)
return;
for (; i <= n; i += (i & -i))
t[i] += val;
}
void upd(int l, int r, T val)
{
upd(l, val);
upd(r + 1, -val);
}
T query(int l, int r)
{
return query(r) - query(l - 1);
}
};
void solve()
{
int n, l, r;
cin >> n >> l >> r;
vector<int> arr(n);
for (auto &val : arr)
cin >> val;
vector<int> pref(n + 1, 0);
for (int i = 1; i <= n; i++)
pref[i] = pref[i - 1] + arr[i - 1];
BIT<int> bit(n + 5);
vector<int> vals = pref;
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
int first = lower_bound(vals.begin(), vals.end(), pref[0]) - vals.begin();
bit.upd(first + 1, 1);
int ans = 0;
for (int i = 1; i <= n; i++)
{
int low = pref[i] - r;
int high = pref[i] - l;
int low_cond = lower_bound(vals.begin(), vals.end(), low) - vals.begin();
int high_cond = upper_bound(vals.begin(), vals.end(), high) - vals.begin();
ans += (bit.query(high_cond) - bit.query(low_cond));
int new_pref_cond = lower_bound(vals.begin(), vals.end(), pref[i]) - vals.begin();
bit.upd(new_pref_cond + 1, 1);
}
cout << ans << '\n';
}
signed main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if (fopen("input.txt", "r"))
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
}
int t = 1;
// cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKCmNvbnN0IGxvbmcgZG91YmxlIFBJID0gMy4xNDE1OTI2NTM1OTsKCnRlbXBsYXRlIDxjbGFzcyBUPgpzdHJ1Y3QgQklUCnsKICAgIC8vIDEtaW5kZXhlZAogICAgaW50IG47CiAgICB2ZWN0b3I8VD4gdDsKCiAgICBCSVQoKQogICAgewogICAgfQoKICAgIEJJVChpbnQgX24pCiAgICB7CiAgICAgICAgbiA9IF9uOwogICAgICAgIHQuYXNzaWduKG4gKyAxLCAwKTsKICAgIH0KCiAgICBUIHF1ZXJ5KGludCBpKQogICAgewogICAgICAgIFQgYW5zID0gMDsKICAgICAgICBmb3IgKDsgaSA+PSAxOyBpIC09IChpICYgLWkpKQogICAgICAgICAgICBhbnMgKz0gdFtpXTsKICAgICAgICByZXR1cm4gYW5zOwogICAgfQoKICAgIHZvaWQgdXBkKGludCBpLCBUIHZhbCkKICAgIHsKICAgICAgICBpZiAoaSA8PSAwKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgZm9yICg7IGkgPD0gbjsgaSArPSAoaSAmIC1pKSkKICAgICAgICAgICAgdFtpXSArPSB2YWw7CiAgICB9CiAgICB2b2lkIHVwZChpbnQgbCwgaW50IHIsIFQgdmFsKQogICAgewogICAgICAgIHVwZChsLCB2YWwpOwogICAgICAgIHVwZChyICsgMSwgLXZhbCk7CiAgICB9CiAgICBUIHF1ZXJ5KGludCBsLCBpbnQgcikKICAgIHsKICAgICAgICByZXR1cm4gcXVlcnkocikgLSBxdWVyeShsIC0gMSk7CiAgICB9Cn07Cgp2b2lkIHNvbHZlKCkKewogICAgaW50IG4sIGwsIHI7CiAgICBjaW4gPj4gbiA+PiBsID4+IHI7CiAgICB2ZWN0b3I8aW50PiBhcnIobik7CiAgICBmb3IgKGF1dG8gJnZhbCA6IGFycikKICAgICAgICBjaW4gPj4gdmFsOwoKICAgIHZlY3RvcjxpbnQ+IHByZWYobiArIDEsIDApOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIHByZWZbaV0gPSBwcmVmW2kgLSAxXSArIGFycltpIC0gMV07CgogICAgQklUPGludD4gYml0KG4gKyA1KTsKICAgIHZlY3RvcjxpbnQ+IHZhbHMgPSBwcmVmOwoKICAgIHNvcnQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpKTsKICAgIHZhbHMuZXJhc2UodW5pcXVlKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSksIHZhbHMuZW5kKCkpOwoKICAgIGludCBmaXJzdCA9IGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSwgcHJlZlswXSkgLSB2YWxzLmJlZ2luKCk7CiAgICBiaXQudXBkKGZpcnN0ICsgMSwgMSk7CgogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IGxvdyA9IHByZWZbaV0gLSByOwogICAgICAgIGludCBoaWdoID0gcHJlZltpXSAtIGw7CgogICAgICAgIGludCBsb3dfY29uZCA9IGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSwgbG93KSAtIHZhbHMuYmVnaW4oKTsKICAgICAgICBpbnQgaGlnaF9jb25kID0gdXBwZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCBoaWdoKSAtIHZhbHMuYmVnaW4oKTsKCiAgICAgICAgYW5zICs9IChiaXQucXVlcnkoaGlnaF9jb25kKSAtIGJpdC5xdWVyeShsb3dfY29uZCkpOwoKICAgICAgICBpbnQgbmV3X3ByZWZfY29uZCA9IGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSwgcHJlZltpXSkgLSB2YWxzLmJlZ2luKCk7CiAgICAgICAgYml0LnVwZChuZXdfcHJlZl9jb25kICsgMSwgMSk7CiAgICB9CiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwp9CgpzaWduZWQgbWFpbih2b2lkKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKCJpbnB1dC50eHQiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgdCA9IDE7CiAgICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9