问题标题: 酷町堂:1548 游戏之金币增长

0
0
已解决
刘意阳
刘意阳
初级天翼
初级天翼
#include <iostream>
using namespace std;
int n,q,a[200005],b[200005],sum;
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[a[i]]++;
	}
	for(int i=1;i<=n;i++){
		if(b[max(0,a[i]-q)]>0){
			sum+=b[max(0,a[i]-q)];
		}
	}
	cout<<sum;
	return 0;
}

哪位大佬可以解释一下为什么WA90?或者看一下#10

刘意阳在2022-12-04 13:58:05追加了内容
#include <iostream>
using namespace std;
int n,q,a[200005],b[200005],sum;
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[a[i]]++;
	}
	for(int i=0;i<=n;i++){
		if(b[max(0,a[i]-q)]>0){
			sum+=b[max(0,a[i]-q)];
		}
	}
	cout<<sum;
	return 0;
}

还是WA90


0
已采纳
丁梓豪
丁梓豪
新手天翼
新手天翼

给你个方法:

桶计数不变,第2个循环从0到200000-c

sum+=b[i]*b[i+c]

输出sum就行了

 

0
0
0
0
我要回答