#include <bits/stdc++.h>
using namespace std;
int const MAX=1e5+5;
int n,m;
struct pict{
int sz,val;
bool operator<(pict ot){
if(val!=ot.val)
return val<ot.val;
return sz<ot.sz;
}
}picture[MAX];
int frame[MAX];
void read(){
cin>>n>>m;
int i;
for(i=1;i<=n;++i)
cin>>picture[i].sz>>picture[i].val;
for(i=1;i<=m;++i)
cin>>frame[i];
sort(picture+1,picture+n+1);
sort(frame+1,frame+m+1);
}
bool check(int target){
target=m-target+1;
int i;
for(i=1;i<=n && target<=m;++i)
if(picture[i].sz<=frame[target])
++target;
return (target>m);
}
int bin_search(){
/// [)
int st=0,dr=max(n,m)+1;
while(dr-st>1){
int mij=(st+dr)/2;
if(check(mij))
st=mij;
else
dr=mij;
}
return st;
}
int main()
{
read();
cout<<bin_search();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |