Submission #1151428

#TimeUsernameProblemLanguageResultExecution timeMemory
1151428irmuunGroup Photo (JOI21_ho_t3)C++20
44 / 100
5093 ms3336 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; int p[n+5]; for(int i=1;i<=n;i++){ cin>>p[i]; } int cnt[n+5][n+5]; memset(cnt,0,sizeof cnt); for(int l=1;l<=n;l++){ int left[n+5],len=0; for(int i=1;i<=n;i++){ if(p[i]>=l){ left[++len]=p[i]; } } int cur=0; int a[n+5]; for(int r=l;r<=n;r++){ for(int i=1;i<=len;i++){ a[i]=left[i]; } int cur=0; for(int x=r;x>=l;x--){//r r-1 ... l for(int i=1;i<=len;i++){ // a_i if(a[i]==x){ for(int k=i-1;k>=r+1-x;k--){ cur++; swap(a[k],a[k+1]); } break; } } } cnt[l][r]=cur; } } int dp[n+5]; fill(dp,dp+n+1,1e9); dp[0]=0; for(int l=1;l<=n;l++){ for(int r=l;r<=n;r++){ dp[r]=min(dp[r],dp[l-1]+cnt[l][r]); } } cout<<dp[n]; }
#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...