#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |