Submission #572070

#TimeUsernameProblemLanguageResultExecution timeMemory
5720701neExhibition (JOI19_ho_t2)C++14
10 / 100
1090 ms340 KiB
#include<bits/stdc++.h> using namespace std; const long long mxn = 1e12; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n,m;cin>>n>>m; vector<pair<long long ,long long>>arr(n); for (int i = 0;i<n;++i){ cin>>arr[i].first>>arr[i].second; } vector<int>brr(m); for (int i = 0;i<m;++i)cin>>brr[i]; sort(brr.begin(),brr.end()); sort(arr.begin(),arr.end(),[&](auto x,auto y){ if (x.second == y.second)return x.first < y.first; return x.second < y.second; }); function<int(int,int)> solve = [&](int cur,int pos){ if (cur==n)return 0; int nxt = lower_bound(brr.begin(),brr.end(),arr[cur].first) - brr.begin(); nxt = max(nxt,pos); while(nxt<m && brr[nxt]<arr[cur].first)++nxt; while(nxt-1>=pos && brr[nxt - 1] >= arr[cur].first)--nxt; int ans = 0; ans = solve(cur + 1,pos); if (nxt < m){ ans = max(ans,solve(cur + 1,nxt + 1) + 1); } return ans; }; int ans = solve(0,0); cout<<ans<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...