记录编号 449028 评测结果 AAAAAAAAAA
题目名称 平凡的题面 最终得分 100
用户昵称 GravatarShirry 是否通过 通过
代码语言 C++ 运行时间 0.360 s
提交时间 2017-09-13 18:50:44 内存使用 3.36 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
const int maxn=200010;
int n,m,ans,maxx,b[maxn];
struct poi{
	int l,r,len;
}a[maxn];
struct node{
	int x;
	bool operator < (const node&a)const{
		return a.x<x;
	}
}t,p;
priority_queue<node>q;
bool cmp(poi a,poi b){
	if(a.l!=b.l)return a.l<b.l;
	else return a.len>b.len;
}
int main(){
	freopen("bg.in","r",stdin);
	freopen("bg.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&a[i].l),a[i].r=a[i].l,a[i].len=0;
	for(int i=1;i<=m;i++)scanf("%d%d",&a[i+n].l,&a[i+n].r),a[i+n].len=a[i+n].r-a[i+n].l+1;
	sort(a+1,a+1+n+m,cmp);
	for(int i=1;i<=n+m;i++){
		if(a[i].len)t.x=a[i].r,q.push(t);
		else{
			while(!q.empty()){
				t=q.top();
				if(t.x<a[i].l)q.pop();
				else break;
			}
			if(q.size())ans++,q.pop();
		}
	}
	printf("%d\n",ans);
	return 0;
}