제출 #1334046

#제출 시각아이디문제언어결과실행 시간메모리
1334046WarinchaiMoney (IZhO17_money)C++20
큐에 대기중
0 ms0 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];
}