求助一下 为什么第二个点错误呢?
  • 板块P1102 A-B 数对
  • 楼主codecat8
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/4/17 21:03
  • 上次更新2023/11/5 00:24:49
查看原帖
求助一下 为什么第二个点错误呢?
451582
codecat8楼主2021/4/17 21:03
#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
int n,c;
int nums[200010];
int main(){
    ios_base::sync_with_stdio(false);
    cin >> n >> c;
    long long ans = 0;
    map<int,long long> mp;
    for(int i = 0 ; i < n ; i ++){
        cin >> nums[i];
        mp[nums[i]]++;
    }
    sort(nums,nums+n);
    for(int i = 0 ; i < n ; i ++){
        int a = nums[i];
        int l = 0 , r = n-1;
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(nums[mid] <= abs(a-c))l = mid;
            else r = mid - 1;
        }
        if(abs(a - c) == nums[l]){
            ans += mp[nums[l]];
        }
    }
    cout << ans;
    return 0;
}
2021/4/17 21:03
加载中...