比赛 防止颓废的小练习v0.4 评测结果 AAAAAAAAWA
题目名称 乘积最大 最终得分 90
用户昵称 slyterlins 运行时间 0.014 s
代码语言 C++ 内存使用 0.33 MiB
提交时间 2016-10-25 09:49:47
显示代码纯文本
#include<cstdio> 
#include<cstring> 
#include<iostream>
#include<algorithm>
using namespace std;
int n,k,a[50],f[50][50];
int chr(int u,int v){
	int t=0;
	for(int i=u;i<=v;i++)t=t*10+a[i];
	return t;
}
int main(){
	freopen("cjzd.in","r",stdin);
	freopen("cjzd.out","w",stdout);
	cin>>n>>k;
	string h;
	cin>>h;
	for(int i=1;i<=n;i++)a[i]=h[i-1]-'0';
	for(int i=1;i<=n;i++)f[i][0]=f[i-1][0]*10+a[i];
    for(int u=1;u<=k;u++){
    	for(int i=u+1;i<=n;i++)
    	   for(int j=1;j<i;j++)
    	   f[i][u]=max(f[j][u-1]*chr(j+1,i),f[i][u]);
	}
   cout<<f[n][k]<<endl;
	return 0;
}