#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int res=1e9;
void backtrack(int i,int j,int &n,int &k,vector<int> &x,vector<set<int>> y)
{
//cout<<i<<" "<<j<<endl;
if(j==k&&i!=n)return;
if(i==n)
{
int s=0;
for(int l=0;l<k;l++)
{
if(!y[l].empty()){
auto e=y[l].end();e--;
auto ee=y[l].begin();
s+=((*e+1)-*ee);
}
}
res=min(res,s);
return;
}
backtrack(i,j+1,n,k,x,y);
y[j].insert(x[i]);
backtrack(i+1,j,n,k,x,y);
}
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];
}
vector<set<int>> y(k);
backtrack(0,0,n,k,x,y);
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... |