需要考虑到数含0的情况,当成10处理
import java.util.Scanner;
public class _2 {
static int n,k;
static long[][] dp=new long[45][10];
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
k=sc.nextInt();
String s=sc.next();
for (int i = 1; i <= n; i++) {
dp[i]=new long[10];
dp[i][0]=Long.parseLong(s.substring(0,i));
}
dp[2][1]=Integer.parseInt(s.charAt(0)+"")*Integer.parseInt(s.charAt(1)+"");
for (int i = 3; i <= n; i++) {
for (int j = 1; j <= i-1; j++) {
long x=dp[i-1][j-1];
long y=dp[i-1][j];
if(s.charAt(i-2)=='0'){
dp[i][j]=Math.max(dp[i-1][j-1]*Integer.parseInt(s.charAt(i-1)+""),
dp[i-1][j]/10
*Integer.parseInt(s.charAt(i-1)+""));
}
else{
dp[i][j]=Math.max(dp[i-1][j-1]*Integer.parseInt(s.charAt(i-1)+""),
dp[i-1][j]/(Integer.parseInt(s.charAt(i-2)+""))
*(Integer.parseInt(s.charAt(i-2)+"")*10
+Integer.parseInt(s.charAt(i-1)+"")));
}
}
}
System.out.println(dp[n][k]);
}
}