记录编号 203768 评测结果 AAAAAAAAAA
题目名称 平凡的题面 最终得分 100
用户昵称 Gravatarasddddd 是否通过 通过
代码语言 C++ 运行时间 0.592 s
提交时间 2015-11-03 16:41:43 内存使用 1.57 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<map>
#include<algorithm>
#include<queue>
#define maxn 110000
using namespace std;
typedef pair<int,int> pi;
int dian[maxn];
pi asd[maxn];
bool comp(const pi &a,const pi& b){
	if(a.first!=b.first)
	return a.first<b.first;
	return a.second<b.second;
}
priority_queue<int,vector<int>,greater<int> >que;
int main(){
	freopen("bg.in","r",stdin);
	freopen("bg.out","w",stdout);
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>dian[i];
	}
	sort(dian,dian+n);
	for(int i=0;i<m;i++){
		int from,to;
		cin>>from>>to;
		pi assd(from,to);
		asd[i]=assd;
	}
	while(!que.empty()){
		que.pop();
	}
	int ans=0;
	sort(asd,asd+m,comp);
	int j=0,k=0;
	for(int i=0;i<=dian[n-1];i++){
		while(i==asd[j].first){
			que.push(asd[j].second);
			j++;
		}
		while(dian[k]==i){
			while(!que.empty()){
				int q=que.top();
				if(q>=dian[k]){
					ans++;
					que.pop();
					break;
				}
				que.pop();
			}
			k++;
		}
	}
	cout<<ans;
}