#include <bits/stdc++.h>
using namespace std;
const int N=1e6+2;
int a[N],b[N];
int res=1e9,ma=0;
int n,k;
void backtrack(int x)
{
    if(x>ma)
    {
        int dem=0,run=0,ok=0;
        b[0]=0;
        for(int i=1; i<=ma; i++)
        {
            if(b[i-1]==0 && b[i]==1) dem++;
            if(b[i]==1) run++;
        }
        if(dem<=k)
        {
            ok=1;
            for(int i=1; i<=n; i++)
            {
                if(b[a[i]]==0) ok=0;
            }
        }
        if(ok==1) res=min(res,run);
    }
    else
    {
        for(int m=0; m<=1; m++)
        {
            b[x]=m;
            backtrack(x+1);
        }
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie();
    cin >> n >> k;
    for(int i=1; i<=n; i++) cin >> a[i];
    for(int i=1; i<=n; i++)
    {
        ma=max(ma,a[i]);
    }
    backtrack(1);
    cout << res;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |