比赛 平凡的题目 评测结果 AAAAAAAAAA
题目名称 平凡的题面 最终得分 100
用户昵称 fyb 运行时间 0.356 s
代码语言 C++ 内存使用 0.96 MiB
提交时间 2015-11-03 10:30:11
显示代码纯文本
#include <cstdio>
#include <set>
#include <algorithm>

using namespace std;

#define MMAX 100000

struct seg{
	int l,r;

	bool operator < (const seg b)const{return r<b.r;}
};

seg p[MMAX];
multiset<int> s;

int main(){
	int n,m;
	int tmp,num=0;
	multiset<int>::iterator iti,itib;
	int i;

	freopen("bg.in","r",stdin);
	freopen("bg.out","w",stdout);

	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++){
		scanf("%d",&tmp);
		s.insert(tmp);
	}
	for(i=0;i<m;i++)
		scanf("%d%d",&p[i].l,&p[i].r);

	sort(p,p+m);

	for(i=0;i<m;i++){
		iti=s.find(p[i].l);
		if(iti==s.end()){
			itib=iti=s.insert(p[i].l);
			iti++;
//			printf("%d\n",*itib);
			s.erase(itib);
			if((iti!=s.end())&&(*iti<=p[i].r)){
				num++;
				s.erase(iti);
			}
		}else{
			s.erase(iti);
			num++;
		}
//		for(iti=s.begin();iti!=s.end();iti++)printf("%d ",*iti);
//		putchar('\n');
	}

	printf("%d",num);
	return 0;
}