#include <bits/stdc++.h>
#define ll long long
#define all(x) x.begin(), x.end()
#define ii pair<ll,ll>
#define fst first
#define snd second
#define sz(x) (int)x.size()
using namespace std;
const int MAXN=1e5+5;
int main(){
int n,m;cin>>n>>m;
vector<ii>v(n);
for(int i=0;i<n;i++)cin>>v[i].fst>>v[i].snd;
vector<ll>c(m);
for(int i=0;i<m;i++)cin>>c[i];
sort(all(c));
sort(all(v));
int ans=0;
priority_queue<int,vector<int>,greater<int>>q;
int j=0,ult=0;
for(int i=0;i<m;i++){
while(j<n&&v[j].fst<=c[i]){
q.push(v[j].snd);
j++;
}
while(sz(q)&&q.top()<ult)q.pop();
if(sz(q)){
ult=q.top();
ans++;
q.pop();
}
}
cout<<ans<<endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |