# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
721012 | pcc | Exhibition (JOI19_ho_t2) | C++14 | 594 ms | 10248 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define pll pair<ll,ll>
#define fs first
#define sc second
const ll mxn = 1e5+10;
ll n,m;
pll arr[mxn];
ll brr[mxn];
bool f(ll k){
multiset<ll> st;
int p = 0;
int pre = 0;
for(int i = m-k;i<m;i++){
while(p<n&&arr[p].fs<=brr[i]){
st.insert(arr[p].sc);
p++;
}
auto it = st.lower_bound(pre);
if(it == st.end())return false;
pre = *it;
st.erase(st.find(*it));
}
return true;
}
main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i = 0;i<n;i++)cin>>arr[i].fs>>arr[i].sc;
for(int i = 0;i<m;i++)cin>>brr[i];
sort(arr,arr+n);
sort(brr,brr+m);
int l = 0,r = m;
while(l != r){
int mid = (l+r+1)>>1;
if(f(mid))l = mid;
else r = mid-1;
}
cout<<l;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |