比赛 2024暑期C班集训4 评测结果 AAAAAAAAAA
题目名称 梦境 最终得分 100
用户昵称 Untitled 运行时间 0.432 s
代码语言 C++ 内存使用 2.46 MiB
提交时间 2024-07-04 09:05:56
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int const N=200010;
int n,m,res,idx=1;
int c[N];
bool d[N];

struct node{
    int l,r;
} a[N];

bool st(node a,node b){
    return a.l<b.l;
}

struct cmp{
    bool operator()(node a,node b){
        if (a.r!=b.r) return a.r>b.r;
        return a.l>b.l;
    }
};

priority_queue<node,vector<node>,cmp> q;

int main(){
    freopen("dream.in","r",stdin);
    freopen("dream.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    for (int i=1;i<=n;i++) scanf("%d %d",&a[i].l,&a[i].r);
    for (int i=1;i<=m;i++) scanf("%d",&c[i]);
    sort(c+1,c+m+1);sort(a+1,a+n+1,st);
    node t;
    for (int i=1;i<=m;i++){
        for (;idx<=n;idx++){
            if (a[idx].l<=c[i]) q.push(a[idx]);
            else break;
        }
        while (q.size()){
            t=q.top();q.pop();
            if (c[i]<=t.r){
                res++;
                break;
            }
        }
    }
    printf("%d",res);
    
    return 0;
}