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