제출 #1216881

#제출 시각아이디문제언어결과실행 시간메모리
1216881stdfloatExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms396 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define ff first #define ss second #define pii pair<int, int> #define sz(v) (int)(v).size() #define all(v) (v).begin(), (v).end() int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; pii p[n]; for (int i = 0; i < n; i++) cin >> p[i].ff >> p[i].ss; sort(p, p + n); vector<int> c(m); for (auto &i : c) cin >> i; sort(c.begin(), c.end()); pii dp[n]; int mx = 0; for (int i = 0; i < n; i++) { if (p[i].ff > c[m - 1]) continue; dp[i].ff = 1; dp[i].ss = lower_bound(all(c), p[i].ff) - c.begin(); for (int j = 0; j < i; j++) { if (p[j].ss <= p[i].ss && dp[j].ss != m - 1) { int t = lower_bound(dp[j].ss + 1 + all(c), p[i].ff) - c.begin(); if (dp[j].ff + 1 > dp[i].ff || (dp[j].ff + 1 == dp[i].ff && t < dp[i].ss)) { dp[i].ff = dp[j].ff + 1; dp[i].ss = t; } } } // cout << i << ' ' << dp[i].ff << ' ' << dp[i].ss << '\n'; mx = max(mx, dp[i].ff); } cout << mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...