提出 #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 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |