Submission #1154133

#TimeUsernameProblemLanguageResultExecution timeMemory
1154133AlgorithmWarriorExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>

using namespace std;

int const MAX=1e5+5;
int n,m;
struct pict{
    int sz,val;
    bool operator<(pict ot){
        return val<ot.val;
    }
}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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...