제출 #1275530

#제출 시각아이디문제언어결과실행 시간메모리
1275530mpawicka_77Group Photo (JOI21_ho_t3)C++20
100 / 100
275 ms165368 KiB
#include <bits/stdc++.h> using namespace std; const int N=5e3+2, INF=1e9; int W[N][N], M[N][N]; bool czy[N]; int a[N], dp[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++) { for(int j=n;j>=1;j--) { W[a[i]][j]=W[a[i]][j+1]; W[a[i]][j]+=czy[j]; } czy[a[i]]=true; } for(int i=1;i<=n;i++)czy[i]=0; for(int i=n;i>=1;i--) { for(int j=a[i];j<=n;j++) { M[a[i]][j]=M[a[i]][j-1]; M[a[i]][j]+=czy[j]; } czy[a[i]]=true; } for(int i=1;i<=n;i++) { dp[i]=INF; int inw=0; for(int j=i-1;j>=0;j--) { inw+=W[j+1][i+1] + M[j+1][i]; dp[i]=min(dp[j] + inw, dp[i]); } } cout<<dp[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...