输入样例:
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;
}