Sunscreen (贪心&map)
思路:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e3+5;
struct p{
int l,r;
bool operator<(const p&a)const{
return l<a.l;
}
}a[N];
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d%d",&a[i].l,&a[i].r);
sort(a+1,a+n+1);
map<int,int>mp;
mp[0]=n;
for(int i=1,x,y;i<=m;i++) scanf("%d%d",&x,&y),mp[x]+=y;
int ans=0;
for(int i=n;i>=1;i--)
{
auto it=mp.upper_bound(a[i].r);//返回迭代器.
--it;
if(it->first>=a[i].l){
ans++;
(it->second)--;
if(it->second==0) mp.erase(it);
}
}
printf("%d\n",ans);
}