제출 #406331

#제출 시각아이디문제언어결과실행 시간메모리
406331MilosMilutinovicExam (eJOI20_exam)C++14
0 / 100
1087 ms460 KiB
#include <bits/stdc++.h> using namespace std; const int N = 5005; int a[N]; int b[N]; int dp[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { cin >> b[i]; } for (int i = 0; i < n; i++) { map<int, int> cnt; int mx = a[i]; for (int j = i; j >= 0; j--) { mx = max(mx, a[j]); cnt[b[j]]++; dp[i] = max(dp[i], (j == 0 ? 0 : dp[j - 1]) + cnt[mx]); } } int ans = dp[n - 1]; for (int i = n - 1; i >= 0; i--) { dp[i] = 0; map<int, int> cnt; int mx = a[i]; for (int j = i; j < n; j++) { mx = max(mx, a[j]); cnt[b[j]]++; dp[i] = max(dp[i], (j == n - 1 ? 0 : dp[j + 1]) + cnt[mx]); } } cout << max(ans, dp[0]) << '\n'; return 0; }
#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...