题面链接:https://codeforces.com/contest/1011/problem/A
类型:贪心
题意:给你一堆字符a-z(n个),然后选k个字符组装起来,要求后一个字符不能是前一个字符的相邻
题解:开个27的数组,从a到z贪心,标记选取的前一个字符,记录字符权值和,记录选取个数,选取个数不达到k则输出-1
import java.util.Scanner;
public class A{
public static void main(String[] args) {
int a[]=new int[27];
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
int t=kb.nextInt();
String str=kb.next();
char ch[]=str.toCharArray();
for(int i=0;i<ch.length;i++) {
int b=ch[i]-'a'+1;
a[b]++;
}
int bj=0;
int bj1=-1;
int sum=0;
for(int i=1;i<=26&&bj<t;i++) {
if(a[i]>0&&bj1!=i-1) {
sum+=i;
bj1=i;
bj++;
}
}
if(bj<t) {
System.out.println(-1);
}else {
System.out.println(sum);
}
kb.close();
}
}