Submission #554961

#TimeUsernameProblemLanguageResultExecution timeMemory
554961ItamarExam (eJOI20_exam)C++14
0 / 100
5 ms412 KiB
#include <map> #include <iostream> using namespace std; #include <vector> #include <queue> #include <set> #include <algorithm> #define ll long long #define vi vector<int> #define vll vector<ll> #define pi pair<int,int> #define pll pair<ll,ll> const int siz = 1e5; int a[siz]; int b[siz]; int solve(int i, int j) { int n = j - i + 1; vi dp(n + 1, 1e9 + 1); dp[0] = 0; int max = 0; for (int t = 0; t < n; t++) { int x = b[t + i]; auto it = lower_bound(dp.begin(), dp.end(), x); *it = x; if (max < it - dp.begin()) { max = it - dp.begin(); } } return max; } int main() { int n; cin >> n; for (int i = 0; i < n; i++) { int x; cin >> x; a[i] = x; } for (int i = 0; i < n; i++) { int x; cin >> x; b[i] = x; } int sum = 0; int last = 0; for (int i = 1; i < n; i++) { if (a[i] < a[i - 1]) { sum += solve(last, i - 1); last = i; } } sum+=solve(last, n - 1); cout << sum; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...