Submission #833604

#TimeUsernameProblemLanguageResultExecution timeMemory
833604vjudge1Exam (eJOI20_exam)C++17
0 / 100
2 ms1108 KiB
#include<bits/stdc++.h> #define int long long #define For(i, n) for (int i = 0; i < n; i++) using namespace std; const int MAXN = 200; int N, H[MAXN + 5], T[MAXN + 5], dp[MAXN + 5][MAXN + 5]; int f(int L, int R) { if (L > R) return 0; if (L == R) { if (H[L] == T[L]) return 1; else return 0; } // menjadikan semuanya max(H[l], H[l+1], .. , H[r]) int maks = 0; for (int i = L; i <= R; i++) { maks = max(maks, H[i]); } int cnt = 0; for (int i = L; i <= R; i++) { if (T[i] == maks) cnt++; } int ans = cnt; for (int i = L; i <= R - 1; i++) { ans = max(ans, f(L, i) + f(i + 1, R)); } return dp[L][R] = ans; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); memset(dp, -1, sizeof dp); cin >> N; For (i, N) cin >> H[i]; For (i, N) cin >> T[i]; cout << f(0, N - 1) << endl; }
#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...