求助,为什么会RE
  • 板块学术版
  • 楼主chrispang
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/21 09:55
  • 上次更新2024/7/21 09:57:28
查看原帖
求助,为什么会RE
786127
chrispang楼主2024/7/21 09:55

这道题RE了三个点,该怎么改。

#include <bits/stdc++.h>
using namespace std;
    
long long ans, a[20010];
int n, c;
map<int, long long>m;
void binary() { //二分法 
	sort(a + 1, a + n + 1);
    for (int i = 1; i <= n; i++)
        ans += upper_bound(a + 1, a + n + 1, a[i] + c) - lower_bound(a + 1, a + n + 1, a[i] + c);
}

void ma() { //map法 
	for (int i = 1; i <= n; i++)
		m[a[i]]++;
	for (int i = 1; i <= n; i++)
		if(m[a[i] + c]) ans += m[a[i] + c];
}

int main() {
    cin >> n >> c;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
 	//binary();
 	ma();
    cout << ans << endl;
    return 0;
}
2024/7/21 09:55
加载中...