记录编号 589243 评测结果 AAAAAAAAAA
题目名称 梦境 最终得分 100
用户昵称 Gravatarflyfree 是否通过 通过
代码语言 C++ 运行时间 0.902 s
提交时间 2024-07-04 14:07:48 内存使用 3.09 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define MAXN 200005
ll n,m,ans,idx=1;
struct node{
    ll l,r;
}line[MAXN];
ll pnt[MAXN];
bool operator <(const node &a,const node &b){
    return a.r>b.r;
}
bool cmp(node a,node b){
    return a.l<b.l;
}
priority_queue<node> q;
int main(){
    freopen("dream.in","r",stdin);
        freopen("dream.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>line[i].l>>line[i].r;
    }
    sort(line+1,line+1+n,cmp);
    for(int i=1;i<=m;i++){
        cin>>pnt[i];
    }
    sort(pnt+1,pnt+1+m);
    for(int i=1;i<=m;i++){
        while(idx<=n){
            if(line[idx].l<=pnt[i]){
                q.push(line[idx]);
//                cout<<idx<<" "<<line[idx].l<<endl;
                idx++;
            }else break;
        }
//        cout<<pnt[i]<<" "<<idx<<" "<<line[idx].l<<" "<<line[idx].r<<endl;
        while(!q.empty()){
            if(q.top().r<pnt[i])q.pop();
            else break;
        }
        if(!q.empty()){
            q.pop();
            ans++;
        }
    }
    cout<<ans;
    return 0;
}