A solution in c++
#include<bits/stdc++.h>
using namespace std;
/// Typedef
typedef long long int ll;
//Int data type
#define sc1(a) scanf("%d", &a)
#define sc2(a, b) scanf("%d %d", &a, &b)
#define sc3(a, b, c) scanf("%d %d %d", &a, &b, &c)
#define sc4(a, b, c, d) scanf("%d %d %d %d", &a, &b, &c, &d)
//Long Data type
#define scl1(a) scanf("%lld", &a)
#define scl2(a, b) scanf("%lld %lld", &a, &b)
#define scl3(a, b, c) scanf("%lld %lld %lld", &a, &b, &c)
#define scl4(a, b, c, d) scanf("%lld %lld %lld %lld", &a, &b, &c, &d)
#define mx 1000005
#define mod 1000000007
#define pf(a) cout<<a<<endl
int main()
{
ll n,m,i,j=0,k=0,t,a=0,b,c,ck=0,dk=1;
scl2(n,m);
string arr;
cin>>arr;
sort(arr.begin(), arr.end());
a = arr[0] - 'a';
ck+=a+1;
for(i=1; i<n; i++){
b = arr[i] - 'a';
if(abs(a-b)>1 && m>1){
ck+=(b+1);
j++;
dk++;
a = arr[i] - 'a';
if(j==m-1) break;
}
else{
continue;
}
}
if(dk<m)
cout<<"-1"<<endl;
else
cout<<ck<<endl;
}


0 Comments
If you have any doubts, Please let me know