Submission #120492

#TimeUsernameProblemLanguageResultExecution timeMemory
120492achibasadzishviliExhibition (JOI19_ho_t2)C++14
100 / 100
868 ms11440 KiB
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define pb push_back
using namespace std;
ll n,m,b[100005];
multiset<ll>st;
pair<ll,ll>a[100005];
bool check(ll x){
    vector<ll>v;
    for(int i=m-x+1; i<=m; i++)v.pb(b[i]);
    ll lastval = 0;
    ll ind = 1;
    st.clear();
    for(int i=0; i<v.size(); i++){
        while(a[ind].f <= v[i] && ind <= n){
            st.insert(a[ind].s);
            ind++;
        }
        if(st.size())
        while((*st.begin()) < lastval){
            st.erase(st.begin());
            if(st.empty())return 0;
        }
        if(st.empty())return 0;
        lastval = (*st.begin());
        st.erase(st.begin());
    }
    return 1;
}
int main(){
    ios::sync_with_stdio(false);
    cin >> n >> m;
    
    for(int i=1; i<=n; i++)cin >> a[i].f >> a[i].s;
    
    sort(a + 1,a + n + 1);
    
    for(int i=1; i<=m; i++)cin >> b[i];
    sort(b + 1,b + m + 1);
    ll l = 1,r = min(n , m),mid,ans = 0;
    
    while(r >= l){
        mid = (l + r) / 2;
        if(check(mid)){
            l = mid + 1;
            ans = mid;
        }
        else r = mid - 1;
    }
    
    cout << ans << endl;
    
    
    
    return 0;
}

Compilation message (stderr)

joi2019_ho_t2.cpp: In function 'bool check(long long int)':
joi2019_ho_t2.cpp:16:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<v.size(); i++){
                  ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...