Submission #1271269

#TimeUsernameProblemLanguageResultExecution timeMemory
1271269cmiucExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms328 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; int dp[1<<17], mn[1<<17]; int main(){ int n, m, ans = 0; cin>>n>>m; vector<pair<int,int>> vec(n); vector<int> c(m); for (int i=0;i<n;i++) cin>>vec[i].second>>vec[i].first; sort(begin(vec), end(vec)); for (int i=0;i<m;i++) cin>>c[i]; sort(begin(c), end(c)); for (int i=1;i<=n;i++) dp[i] = 2e9, mn[i] = m; mn[0] = -1; for (auto [b, a] : vec){ int k = upper_bound(begin(c), end(c), a - 1) - begin(c); int u = upper_bound(dp, dp + n + 1, a) - dp; if (k == m or mn[u-1] >= m-1) continue; dp[u] = a; mn[u] = max(mn[u-1] + 1, k); ans = max(ans, u); } cout<<ans<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...