提出 #76656261


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
#define int ll
#define ll long long
#define pb emplace_back
#define pr pair<int,int>
#define mp make_pair
#define endl "\n"
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
void write(int x)
{
    if(x<0)putchar('-'),x=-x;
    if(x<10)putchar(x+'0');
    else write(x/10),putchar(x%10+'0');
}
const int MAXV=1000005;
int n,d,ans=0;
pr m[300005];
int bitc[MAXV+5],bits[MAXV+5];
int lowbit(int n){return n&-n;}
void add(int q,int v){
	while(q<=MAXV){
		bitc[q]++; 
		bits[q]+=v;
		q+=lowbit(q);
	}
}
int queryc(int q){
	if(q<=0) return 0;
	q=min(q,MAXV);
	int da=0;
	while(q>0){
		da+=bitc[q];
		q-=lowbit(q);
	}
	return da;
}
int querys(int q){
	if(q<=0) return 0;
	q=min(q,MAXV);
	int da=0;
	while(q>0){
		da+=bits[q];
		q-=lowbit(q);
	}
	return da;
}
signed main(){
	n=read();
	d=read();
	for(int i=1;i<=n;i++){m[i].first=read();m[i].second=read();}
	sort(m+1,m+1+n);
	for(int i=1;i<=n;i++){
		int mq=m[i].first+d;
		if(m[i].second>=mq){
			int cnt,sum;
			cnt=queryc(MAXV)-queryc(m[i].second-1);
			ans+=(cnt*(m[i].second-m[i].first-d+1));
			cnt=queryc(m[i].second-1)-queryc(mq-1);
			sum=querys(m[i].second-1)-querys(mq-1);
			ans+=(sum-cnt*(mq-1));
		}
		add(m[i].second,m[i].second);
	}
	cout<<ans;
	return 0;
}


提出情報

提出日時
問題 D - Accomplice
ユーザ Fireflies
言語 C++23 (GCC 15.2.0)
得点 400
コード長 1470 Byte
結果 AC
実行時間 44 ms
メモリ 22404 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 23
セット名 テストケース
Sample sample-01.txt, sample-02.txt, sample-03.txt
All 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, sample-01.txt, sample-02.txt, sample-03.txt
ケース名 結果 実行時間 メモリ
04.txt AC 1 ms 3504 KiB
05.txt AC 1 ms 3520 KiB
06.txt AC 13 ms 6752 KiB
07.txt AC 14 ms 6624 KiB
08.txt AC 10 ms 6648 KiB
09.txt AC 9 ms 6652 KiB
10.txt AC 9 ms 6576 KiB
11.txt AC 1 ms 5208 KiB
12.txt AC 5 ms 13272 KiB
13.txt AC 7 ms 17428 KiB
14.txt AC 18 ms 20192 KiB
15.txt AC 32 ms 21032 KiB
16.txt AC 36 ms 22368 KiB
17.txt AC 44 ms 22172 KiB
18.txt AC 44 ms 22036 KiB
19.txt AC 35 ms 22164 KiB
20.txt AC 34 ms 22244 KiB
21.txt AC 34 ms 22236 KiB
22.txt AC 34 ms 22404 KiB
23.txt AC 39 ms 22264 KiB
sample-01.txt AC 1 ms 3628 KiB
sample-02.txt AC 1 ms 3556 KiB
sample-03.txt AC 1 ms 3428 KiB