记录编号 |
34343 |
评测结果 |
AAAAAAAAAA |
题目名称 |
乘法问题 |
最终得分 |
100 |
用户昵称 |
QhelDIV |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.005 s |
提交时间 |
2011-12-11 10:11:59 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include <fstream>
#include <string>
using namespace std;
ifstream fin("chf.in");
ofstream fout("chf.out");
int n,K;
long long Number,f[41][31],Max;
string S,cc;
long long figure(int St,int En)
{
int i;
long long re=S[St]-'0';
for(i=St+1;i<=En;i++)
re=re*10+S[i]-'0';
return re;
}
int main()
{
fin>>n>>K;
int End,i,j,k;
fin>>cc;
S+=" "+cc;
f[1][0]=figure(1,1);
for(i=2;i<=n;i++)
{
f[i][0]=figure(1,i);
End=(i-1>K?K:i-1);
for(j=1;j<=End;j++)
{
Max=f[i-1][j];
for(k=1;k<i;k++)
{
Number=figure(k+1,i)*f[k][j-1];
if(Number>Max)
Max=Number;
}
f[i][j]=Max;
}
}
fout<<f[n][K]<<endl;
fin.close();
fout.close();
return 0;
}