Submission #786070

#TimeUsernameProblemLanguageResultExecution timeMemory
786070andecaandeciExhibition (JOI19_ho_t2)C++17
50 / 100
1051 ms4168 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int maks = 1e5 + 5; int dp[2][maks]; int n, m, bingkai[maks]; pair<int, int> gambar[maks]; bool com(pair<int, int> a, pair<int, int> b) { return ((a.first < b.first) or (a.first == b.first and a.second < b.second)); } signed main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> gambar[i].second >> gambar[i].first; } for (int i = 1; i <= m; i++) { cin >> bingkai[i]; } sort(bingkai+1, bingkai+1+m); sort(gambar+1, gambar+1+n, com); // for (int i = 1; i <= n; i++) cout << gambar[i].first << " " << gambar[i].second << endl; // cout << endl; // for (int i = 1; i <= m; i++) cout << bingkai[i] << endl; // cout << endl; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (gambar[i].second <= bingkai[j]) dp[i%2][j] = max(dp[i%2][j], dp[(i-1)%2][j-1]+1); dp[i%2][j] = max(dp[i%2][j], dp[(i-1)%2][j]); dp[i%2][j] = max(dp[i%2][j], dp[i%2][j-1]); } } cout << dp[n%2][m] << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...