提交多次没有过 请看代码
#include<bits/stdc++.h>
using namespace std;
int n,m,f1[105][105][105],f2[105][105][105],a[105],sum[105];
int mod(int x){
return (x%10+10)%10;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i],sum[i]=sum[i-1]+a[i];
for(int i=1;i<=n;i++) a[i+n]=a[i],sum[i+n]=sum[i]+sum[n];
memset(f2,127,sizeof(f2));
for(int i=1;i<=2*n;i++){
for(int j=i;j<=2*n;j++){
f1[i][j][1]=f2[i][j][1]=mod(sum[j]-sum[i-1]);
}
}
for(int l=1;l<=n;l++){
for(int i=1,j=i+l-1;j<=2*n;i++,j++){
for(int h=2;h<=m;h++){
for(int k=i+h-1;k<j;k++){
f1[i][j][h]=max(f1[i][j][h],f1[i][k][h-1]*mod(sum[j]-sum[k]));
f2[i][j][h]=min(f2[i][j][h],f2[i][k][h-1]*mod(sum[j]-sum[k]));
}
}
}
}
int maxn=0,minn=0x7fffffff;
for(int i=1;i<=n;i++){
maxn=max(maxn,f1[i][i+n-1][m]);
minn=min(minn,f2[i][i+n-1][m]);
}
cout<<minn<<endl<<maxn;
}