Submission #1269383

#TimeUsernameProblemLanguageResultExecution timeMemory
1269383gayGroup Photo (JOI21_ho_t3)C++20
44 / 100
5091 ms476 KiB
#include <bits/stdc++.h> #include <experimental/random> #include <random> using namespace std; using ll = long long; using ld = long double; const ll INF = 1e18, MOD = 998244353; void solve(); signed main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll q = 1; //cin >> q; while (q--) { solve(); } } void solve() { ll n; cin >> n; vector<ll> a(n); vector<ll> pos(n); for (int i = 0; i < n; i++) { cin >> a[i]; a[i]--; pos[a[i]] = i; } vector<ll> dp(n, INF); dp[0] = 0; for (int i = 1; i < n; i++) { for (int j = i; j >= 0; j--) { vector<ll> cur(i + 1); iota(cur.begin(), cur.end(), 0); reverse(cur.begin() + j, cur.end()); ll cnt = 0; if (j != 0) { cnt = dp[j - 1]; } for (int val = j; val <= i; val++) { for (int t = 0; t < val; t++) { ll p1 = pos[cur[val]]; ll p2 = pos[cur[t]]; if (p1 < p2) { cnt++; } } } dp[i] = min(dp[i], cnt); } } cout << dp[n - 1]; }
#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...