제출 #1357510

#제출 시각아이디문제언어결과실행 시간메모리
1357510lkjlkajfaDeveloper (BOI25_dev)C++20
4 / 100
2094 ms580 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long 
ll a[100005];
//ll b[100005];
ll n;
ll res=5000;
ll maxx=0;
void sinh(ll i, ll sum){
    if (sum>=res) return;
    if (i>n){
        for (int j=2;j<n;j++){
            ll x=j+1;
            while (x<=n && a[j]==a[x]){
                x++;
            }
            if (x>n){
                j=x;
                continue;
            }
            if (a[j-1]>a[j] && a[j]>a[x]) return;
            if (a[j-1]<a[j] && a[j]<a[x]) return;
        //    if (a[j-1]>a[j] && a[j]>a[x])
        }
        res=min(res,sum);
    }
    for (int xx=-1000;xx<=1000;xx++){
        if (a[i]+xx<0) continue;
        if (a[i]+xx>maxx) continue;
        a[i]+=xx;
        sinh(i+1,sum+abs(xx));
        a[i]-=xx;
    }
}
int main(){
//    ll n;
    cin>>n;
    for (int i=1;i<=n;i++){ cin>>a[i]; maxx=max(maxx,a[i]);}
    sinh(1,0);
    cout<<res;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…