Submission #1091917

#TimeUsernameProblemLanguageResultExecution timeMemory
1091917mostafa133Group Photo (JOI21_ho_t3)C++14
100 / 100
1569 ms588532 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> typedef long long ll; typedef long double ld; using namespace std; using namespace __gnu_pbds; using ordered_set = tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update>; #define all(x) x.begin(), x.end() #define pll pair<ll, ll> #define vec vector #define fast ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0) const ll mod = 1e9 + 7; ld fpow(ll a, ll b, ll m = -1) { if (m != -1) a %= m; ll res = 1; while (b > 0) { if (b % 2 == 1) { if (m != -1) res = res * a % m; else { res *= a; } } a = a * a; if (m != -1) { a %= m; } b /= 2; } return res; } int main() { // fast; // freopen("pails.in", "r", stdin); // freopen("pails.out", "w", stdout); ll t = 1; // cin >> t; while (t--) { ll n; cin >> n; vec<ll> v(n), a(n); for (int i = 0; i < n; i++) { cin >> v[i]; v[i]--; a[v[i]] = i; } vec<vec<ll>> b(n, vec<ll>(n+1)), c(n, vec<ll>(n+1)), d(n, vec<ll>(n+1)); ordered_set os; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { b[v[i]][j] = os.order_of_key(j); } os.insert(v[i]); } // b[i][j] = >j for(int i = 0; i < n; i++) { for(int j = 0; j <= i; j++) { c[i][j] = b[i][i] - b[i][j]; // cout << c[i][j] << ';'; } // cout << '\n'; } //c[i][j] = <i&>=j for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { b[i][j] = a[i] - b[i][j]; // cout << b[i][j] << ' '; } // cout << '\n'; } // cout << '\n'; for (int i = 0; i < n; i++) { for (int j = 1; j < n; j++) b[j][i] += b[j - 1][i], c[j][i]+=c[j-1][i]; } // for (int i = 0; i < n; i++) { // for (int j = 0; j < n; j++){ // cout << b[i][j] << ' ';} // cout << '\n'; } vec<ll> dp(n); for (int i = 0; i < n; i++) { dp[i] = b[i][i+1]+c[i][0]; for (int j = 0; j < i; j++) { ll x = b[i][i+1] - (b[j][i+1])+c[i][j+1]; dp[i] = min(dp[i], dp[j] + x); // cout << x << ';'; } // cout << dp[i] << ' '; } cout << dp[n - 1]; end:; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:112:2: warning: label 'end' defined but not used [-Wunused-label]
  112 |  end:;
      |  ^~~
#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...