Hi, for some reason my code doesn’t work, its not allowing to erase iterator. Can I please have some help?
also why cannot I do long long(itr-price.begin());, the compiler throws an error.
#include <iostream>
#include <set>
#include <algorithm>
#define ll long long
using namespace std;
int main() {
long long n,m;
cin>>n>>m;
multiset<long long> price;
long long customer[m];
for(long long i=0;i<n;i++)
{
long long temp;
cin>>temp;
price.insert(temp);
}
for(long long i=0;i<m;i++){
cin>>customer[i];
}
for(int i=0;i<m;i++){
multiset<long long>::iterator itr = upper_bound(price.begin(),price.end(),customer[i]);
itr--;
long long maxprice=*itr;
cout<<maxprice<<"\n";
multiset<ll>::iterator x=price.find(maxprice);
price.erase(x);
}
}
