Submission #1282297

#TimeUsernameProblemLanguageResultExecution timeMemory
1282297kaiboyGroup Photo (JOI21_ho_t3)C++20
100 / 100
224 ms165248 KiB
#include <algorithm> #include <iostream> using namespace std; const int N = 5000; int aa[N], ii[N], kk[N][N], xx[N][N], dp[N]; int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); int n; cin >> n; for (int i = 0; i < n; i++) cin >> aa[i], ii[--aa[i]] = i; for (int a = 0; a < n; a++) { if (a) for (int i = 0; i < n; i++) kk[a][i] = kk[a - 1][i]; for (int i = ii[a]; i < n; i++) kk[a][i]++; } for (int l = 0; l < n; l++) for (int k = 0, r = l; r < n; r++) { k += l; if (r) k += kk[r - 1][ii[r]]; if (l) k -= kk[l - 1][ii[r]] * 2; xx[l][r] = k; } for (int i = 0; i < n; i++) { dp[i] = xx[0][i]; for (int j = 0; j < i; j++) dp[i] = min(dp[i], dp[j] + xx[j + 1][i]); } cout << dp[n - 1] << '\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...