#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)来更新迭代器。否则会段错误