#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <map>
using namespace std;

int n,m;
long long sum[300000];
int c[300000];
int d[300000];

int lowbit(int x){
	return x & -x;
}

void update(int x){
	while (x<=n+10){
		c[x]+=1;
		x+=lowbit(x);
	}
}

int query(int x){
	int s=0;
	while (x>0){
		s+=c[x];
		x-=lowbit(x);
	}
	return s;
}

int main(){
	scanf("%d%d",&n,&m);
	int w;
	sum[0]=0;
	for (int i=1;i<=n;i++){
		scanf("%lld",&w);
		sum[i]=sum[i-1]+w;
	}
	for (int i=0;i<=n;i++){
		sum[i]=sum[i]-m*i;
		d[i]=sum[i];
	}
	sort(d,d+n+1);
	map <long long ,long long > ma;
	for (int i=0;i<=n;i++){
		if (!ma[d[i]]){
			ma[d[i]]=i+1;
		}
	}
	memset(c,0,sizeof(c));
	long long ans=0;
	for (int i=0;i<=n;i++){
		ans+=query(ma[sum[i]]);
		update(ma[sum[i]]); 
	}
	printf("%lld\n",ans);
	return 0;
} 