比赛 |
20170912 |
评测结果 |
AAAAAAAAAA |
题目名称 |
平凡的题面 |
最终得分 |
100 |
用户昵称 |
1azyReaper |
运行时间 |
0.261 s |
代码语言 |
C++ |
内存使用 |
1.46 MiB |
提交时间 |
2017-09-12 21:32:43 |
显示代码纯文本
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <vector>
#include <algorithm>
#define MAX 100010
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class node
{
public:
int l,r;
}peo[MAX];
int ti[MAX],n,m,ans=0;
priority_queue<int,vector<int>,greater<int> > pq;
inline int read()
{
int ans=0,f=1;
char tmp=getchar();
while(tmp<'0'||tmp>'9')
{
if(tmp=='-')
f=-f;
tmp=getchar();
}
while(tmp>='0'&&tmp<='9')
{
ans=ans*10+tmp-'0';
tmp=getchar();
}
return ans*f;
}
inline bool jdg(node a,node b)
{
return a.l<b.l;
}
int main(int argc, char** argv)
{
freopen("bg.in","r",stdin);
freopen("bg.out","w",stdout);
n=read(),m=read();
//cout<<n<<' '<<m<<endl;
for(int i=1;i<=n;i++)
{
ti[i]=read();
//cout<<ti[i]<<' ';
}//cout<<endl;
for(int i=1;i<=m;i++)
{
peo[i].l=read(),peo[i].r=read();
//cout<<peo[i].l<<' '<<peo[i].r<<' '<<endl;
}//cout<<endl;
sort(peo+1,peo+1+m,jdg);
sort(ti+1,ti+1+n);
int i=1,j=1;
while(i<=n)
{
if(ti[i]>=peo[j].l)
{
pq.push(peo[j].r);
j++;
}
else
{
while(!pq.empty())
{
if(ti[i]<=pq.top())
{
ans++;
pq.pop();
break;
}
else
{
pq.pop();
}
}
i++;
}
}
cout<<ans<<endl;
return 0;
}