提出 #73073394


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
const int MAXN=400005,V=1000000000;
int read() {
	static int c=getchar(),f=1,x=0;
	for(f=1; c<48||c>57; c=getchar())f=f&&c^45;
	for(x=0; c>47&&c<58; c=getchar())x=(x<<3)+(x<<1)+(c&15);
	return f?x:-x;
}
int a[MAXN],n,d,rt[MAXN],tcnt;
struct Tree {
	int ls,rs,cnt;
} tr[MAXN*80];
void update(int&num,int pre,int l,int r,int x) {
	if(!num||num==pre) num=++tcnt,tr[num]=tr[pre];
	++tr[num].cnt;
	if(l==r) return;
	int mid=(l+r)>>1;
	if(x<=mid) return update(tr[num].ls,tr[pre].ls,l,mid,x);
	return update(tr[num].rs,tr[pre].rs,mid+1,r,x);
}
int query(int num,int pre,int l,int r,int L,int R) {
	if(L<=l&&r<=R) return tr[num].cnt-tr[pre].cnt;
	int mid=(l+r)>>1;
	if(R<=mid) return query(tr[num].ls,tr[pre].ls,l,mid,L,R);
	if(mid<L)return query(tr[num].rs,tr[pre].rs,mid+1,r,L,R);
	return query(tr[num].ls,tr[pre].ls,l,mid,L,mid)+query(tr[num].rs,tr[pre].rs,mid+1,r,mid+1,R);
}
int main() {
	n=read(),d=read();
	for(int i=1; i<=n; ++i) a[i]=read(),rt[i]=rt[i-1],update(rt[i],rt[i-1],1,V,a[i]);
	long long ans=0;
	for(int r=1,l=1; r<=n; ++r) {
//		cout<<query(rt[r-1],rt[l-1],1,V,max(1,a[r]-d+1),min(V,a[r]+d-1))<<endl;
		while(l<r&&query(rt[r-1],rt[l-1],1,V,max(1,a[r]-d+1),min(V,a[r]+d-1))) ++l;
		ans+=r-l+1;
	}
	printf("%lld\n",ans);
	return 0;
}

提出情報

提出日時
問題 E - Sparse Range
ユーザ mod998244353
言語 C++23 (GCC 15.2.0)
得点 450
コード長 1328 Byte
結果 AC
実行時間 469 ms
メモリ 152192 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 21
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All min1.txt, min2.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
min1.txt AC 1 ms 3764 KiB
min2.txt AC 1 ms 3712 KiB
random_01.txt AC 381 ms 151928 KiB
random_02.txt AC 321 ms 128308 KiB
random_03.txt AC 392 ms 151860 KiB
random_04.txt AC 320 ms 131892 KiB
random_05.txt AC 433 ms 151860 KiB
random_06.txt AC 230 ms 89664 KiB
random_07.txt AC 462 ms 151840 KiB
random_08.txt AC 324 ms 113024 KiB
random_09.txt AC 469 ms 151852 KiB
random_10.txt AC 288 ms 101960 KiB
random_11.txt AC 310 ms 122944 KiB
random_12.txt AC 37 ms 35508 KiB
random_13.txt AC 149 ms 152192 KiB
random_14.txt AC 364 ms 151732 KiB
random_15.txt AC 429 ms 151928 KiB
random_16.txt AC 367 ms 151852 KiB
sample_01.txt AC 1 ms 3680 KiB
sample_02.txt AC 1 ms 3764 KiB
sample_03.txt AC 1 ms 3768 KiB