#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1000005;
long long tree[N];
long long ans;
long long n, k;
struct node
{
    long long tot,id;
}sum[N];
int lowbit(int x)
{
    return x&(-x);
}
void modify(long long x,long long y)
{
    if (x==0)
    {
      tree[x]+=y;
      return;
    }
    while (x<=n)
    {
        tree[x]+=y;
        x+=lowbit(x);
    }
}
long long add(int x)
{
    long long sum1=tree[0];
    while (x>0)
    {
        sum1+=tree[x];
        x-=lowbit(x);
    }
    return sum1;
}
bool cmp(node a,node b)
{
    if (a.tot<b.tot)
        return true;
    return false;
}
int main()
{
    scanf("%lld%lld",&n,&k);
    for (int i=1;i<=n;i++)
    {
        long long x;
        scanf("%lld",&x);
        sum[i].tot=sum[i-1].tot+x-k;
        sum[i].id=i;
    }
    sum[0].id=0;
    sum[0].tot=0;
    sort(sum,sum+1+n,cmp);
    memset(tree,0,sizeof(tree));

    for (int i=0;i<=n;i++)
    {
       if (sum[i].id>0) ans+=add(sum[i].id-1);
       modify(sum[i].id,1);

    }
    printf("%lld",ans);
    return 0;
}