记录编号 589306 评测结果 AAAAAAAAAA
题目名称 梦境 最终得分 100
用户昵称 Gravatardream 是否通过 通过
代码语言 C++ 运行时间 0.849 s
提交时间 2024-07-04 17:37:42 内存使用 2.86 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=200005,M=200005;
typedef pair<int,int>PL;
ll n,m;
struct node{
    ll l,r;
}dr[N];
bool cmp(node x,node y){
    if(x.l==y.l){
        return x.r<y.r;
    }
    return x.l<y.l;
}
int t[M];
int main(){
    freopen("dream.in","r",stdin);
    freopen("dream.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        ll l,r;
        cin>>l>>r;
        dr[i]={l,r};
    }
    for(int i=1;i<=m;i++){
        cin>>t[i];
    }
    sort(dr+1,dr+n+1,cmp);
    sort(t+1,t+m+1);
    ll res=0;
    priority_queue<int,vector<int>,greater<int>> q;
    int s=1;
    for(int i=1;i<=m;i++){
        while(s<=n&&dr[s].l<=t[i]){
            q.push(dr[s].r);
            s++;
        }
        while(q.size()&&q.top()<t[i]){
            q.pop();
        }
        if(q.size()){
            res++;
            q.pop();
        }
    }
    cout<<res;
    return 0;
}