代码 搜索思路
#include<bits/stdc++.h>
using namespace std;
const int MAXS = 100 ;
int A[MAXS] ;
int N , K ;
int Ans ;
char S ;
void DFS(int X , int ANS , int P){
if(X == K){
int SUM = 0 ;
for(int i = P + 1 ; i <= N ; i ++ ){
SUM = SUM * 10 ;
SUM += A[i] ;
}Ans = max ( ANS * SUM , Ans ) ;
return ;
}for(int i = P + 1 ; i <= N - K + X ; i ++ ){
int SUM = 0 ;
for(int l = P + 1 ; l <= i ; l ++ ){
SUM = SUM * 10 ;
SUM += A[l] ;
}DFS(X + 1 , ANS * SUM , i ) ;
}return ;
}int main(){
cin >> N >> K ;
for(int i = 1 ; i <= N ; i ++ ){
cin >> S ;
A[i] = S - '0' ;
}DFS( 0 , 1 , 0) ;
cout<< Ans << endl;
return 0 ;
}