记录编号 584681 评测结果 AAAAAAAAAA
题目名称 梦境 最终得分 100
用户昵称 Gravatar宇战 是否通过 通过
代码语言 C++ 运行时间 0.749 s
提交时间 2023-11-14 16:41:29 内存使用 16.60 MiB
显示代码纯文本
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,ans,b[1000000],v[10000000];
    struct node{
        int st,ed;
    }a[1000000];
    bool cmp(node x,node y){
        return x.st<y.st;
    } 
    priority_queue<int,vector<int>,greater<int> >q;
    int main(){
        freopen("dream.in","r",stdin);
        freopen("dream.out","w",stdout);
          cin>>n>>m;
          for(int i=1;i<=n;i++){
              cin>>a[i].st>>a[i].ed;
          }
          for(int i=1;i<=m;i++){
              cin>>b[i];
          }
          sort(a+1,a+1+n,cmp);
          sort(b+1,b+1+m);
          int j=1;
          for(int i=1;i<=m;i++){//按梦境转折点枚举 
              while(j<=n&&a[j].st<=b[i]){
                  q.push(a[j].ed);
                  j++;
              }//如果这个梦有可能被选择 
              while(q.size()&&q.top()<b[i]){
                  q.pop();
              }//弹出所有不包含梦境转折点的梦 
              if(q.size()){
                  ans++;
                  q.pop();
              }
          }
          cout<<ans;
    }