记录编号 122831 评测结果 AAAAAAAAAA
题目名称 [NOIP 2000PJ]乘积最大 最终得分 100
用户昵称 Gravatar席一鸣 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2014-09-24 17:33:12 内存使用 0.39 MiB
显示代码纯文本
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char a[100];
long long dp[100][100];
long long get(int l,int r)
{
	long long num=0;
	int i;
	for(i=l;i<=r;i++)
	  num=num*10+a[i]-'0';
	return num;
}
main()
{
	freopen("cjzd.in","r",stdin);
	freopen("cjzd.out","w",stdout);
	int n,k,len,i,j,s;
	cin>>n>>k>>a;
	len=strlen(a);
	memset(dp,0,sizeof(dp));
	for(i=0;i<len;i++)
	  dp[i][0]=get(0,i);
	for(i=0;i<len;i++)
	  for(j=1;j<=k;j++)
	    for(s=0;s<i;s++)
	      dp[i][j]=max(dp[i][j],dp[s][j-1]*get(s+1,i));
	cout<<dp[len-1][k];
	fclose(stdin);
	fclose(stdout);
}