输入样例:
3 2
3 10
2 5
1 5
6 2
4 1
输出样例:
2
解析:
按照右区间排序,优先满足小的。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3000;
int n,m,cnt[N],x,y,res;
struct node{
int l,r;
}a[N];
bool cmp(node a,node b){
return a.r<b.r;
}
int main(){
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,cmp);
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
cnt[x]+=y;
}
for(int i=1;i<=n;i++){
x=a[i].l;
y=a[i].r;
for(int j=x;j<=y;j++){
if(cnt[j]>0){
res++;
cnt[j]--;
break;
}
}
}
cout<<res;
return 0;
}