#include<bits/stdc++.h>
using namespace std;
multiset<int> s;
int main(){
int n,c,counts=0;
cin>>n>>c;
while(n--){
int x;
cin>>x;
s.insert(x);
}
for(auto i=s.begin();i!=s.end();){
counts+=s.count(*i+c);
i = s.erase(i);
}
cout<<counts;
return 0;
}
不要用for(auto i : s)或int i之类的,用迭代器,且用i = s.erase(i)来更新迭代器。否则会段错误

京公网安备 11010502036488号