Submission #1286276

#TimeUsernameProblemLanguageResultExecution timeMemory
1286276juan_alejandroStove (JOI18_stove)C++20
20 / 100
1091 ms580 KiB
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
#pragma GCC optimize("O2")
using namespace std;
int res=1e9;
void backtrack(int i,int j,int &n,int &k,vector<int> &x,int ans,bool st,int pv,int lv)
{
    //cout<<i<<" "<<j<<endl;
    if(j==k&&i!=n)return;
    if(i==n)
    {
        if(st)ans+=lv-pv+1;
        res=min(res,ans);
        return;
    }
    if(st)ans+=(lv+1)-pv;
    backtrack(i,j+1,n,k,x,ans,0,pv,lv);
    if(st)ans-=(lv+1)-pv;
    if(!st)
    pv=x[i];
    lv=x[i];
    backtrack(i+1,j,n,k,x,ans,1,pv,lv);
}
int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cout.precision(0);
    cout<<fixed;
    int n,k;
    cin>>n>>k;
    vector<int> x(n);
    for (int i = 0; i < n; i++)
    {
        cin>>x[i];
    }
    backtrack(0,0,n,k,x,0,0,0,0);
    cout<<res<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...