| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1334046 | Warinchai | Money (IZhO17_money) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
using namespace std;
int ar[1000005];
int dp[305];
int inf=1e9;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;cin>>n;
for(int i=1;i<=n;i++)cin>>ar[i],dp[i]=inf;
for(int i=1;i<=n;i++){
int mx=ar[i],mn=ar[i];
int prv=ar[i];
for(int j=i;j>=1;j--){
if(ar[j]>prv)break;
mx=max(mx,ar[j]);
mn=min(mn,ar[j]);
int can=1;
for(int k=1;k<j;k++){
if(ar[k]>mn&&ar[k]<mx)can=0;
}
if(can==1){
dp[i]=min(dp[i],dp[j-1]+1);
}
prv=ar[j];
}
}
cout<<dp[n];
}