具体:92分,第三个点WA
数据:
200000
100000个1 100000个2
数据输出:
10000000000
by tangjiarui_550 @ 2023-09-29 16:01:14
有没有一种可能,你可以用stl?
by MrZombie_409 @ 2023-09-29 16:12:29
@[tangjiarui_50](/user/716270) 为什么你要把两段一模一样的代码写成两个函数?
by MrZombie_409 @ 2023-09-29 16:13:53
@[MrZombie_409](/user/837456)
1 谢谢dalao
2 老师不让用stl
by tangjiarui_550 @ 2023-09-29 16:15:12
我觉得你有可能是不开long long见祖宗了。
by MrZombie_409 @ 2023-09-29 16:16:37
题目上说的是c<=2的30次方。
by MrZombie_409 @ 2023-09-29 16:18:57
@[tangjiarui_50](/user/716270) 你开的int它就爆了。
by MrZombie_409 @ 2023-09-29 16:19:42
我也是个菜鸟,给个代码吧:
````
#include<cstdio>
#include<algorithm>
using namespace std;
long long b[10000005];
int main(){
long long a = 0, c = 0, s = 0;
scanf("%lld%lld", &a, &c);
for(int i = 0; i < a; i ++){
scanf("%lld", &b[i]);
}
sort(b, b + a);
for(int i = 0, l = 0, r = 0; i < a; i ++){
while(l < a && b[l] < b[i] + c){
l ++;
}
while(r < a && b[r] <= b[i] + c){
r ++;
}
s = s + r - l;
}
printf("%lld",s);
return 0;
}
by Gausswing @ 2023-09-29 16:29:03
@[tangjiarui_50](/user/716270) 事实上,ans要开long long,因为可能超过$2^{31}-1$
by WZRYWZWY @ 2023-09-30 07:37:00