| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1285706 | thuhienne | Cat Exercise (JOI23_ho_t4) | C++20 | 24 ms | 832 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define re exit(0);
#define thuhien ""
int n,perm[309];
int dp[309][309];
bool xd[309][309];
int calc(int l,int r) {
if (l >= r) return 0;
if (xd[l][r]) return dp[l][r];
xd[l][r] = 1;
int curr = l;
for (int i = l;i <= r;i++) if (perm[i] > perm[curr]) curr = i;
int secondmax = 0;
for (int i = l;i <= r;i++) if (i != curr && (secondmax == 0 || perm[i] > perm[secondmax])) secondmax = i;
for (int dick = l;dick <= r;dick++) {
if (dick == curr) {
if (dick > secondmax) dp[l][r] = max(dp[l][r],calc(l,dick - 1) + dick - secondmax);
else dp[l][r] = max(dp[l][r],calc(dick + 1,r) + secondmax - dick);
} else if (dick > curr) {
dp[l][r] = max(dp[l][r],calc(l,dick - 1));
} else dp[l][r] = max(dp[l][r],calc(dick + 1,r));
}
return dp[l][r];
}
int main() {
ios_base::sync_with_stdio(0);cin.tie(nullptr);
if (fopen(thuhien".inp","r")) {
freopen(thuhien".inp","r",stdin);
freopen(thuhien".out","w",stdout);
}
cin >> n;
for (int i = 1;i <= n;i++) cin >> perm[i];
cout << calc(1,n);
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
