(一上午没找出来真的难绷)
#include<bits/stdc++.h>
using namespace std;
const int N=55;
int n,m,a[2*N],dp[2*N][2*N][15],dp2[2*N][2*N][15],sum[2*N];
int Mod(int x){
return (x%10+10)%10;
}
int main(){
cin>>n>>m;
memset(dp2,0x3f,sizeof dp2);
for(int i=1;i<=n;i++){
cin>>a[i];
a[i+n]=a[i];
}
for(int i=1;i<=2*n;i++){
sum[i]=sum[i-1]+a[i];
}
for(int i=1;i<=2*n;i++){
for(int j=i;j<=2*n;j++){
dp[i][j][1]=dp2[i][j][1]=Mod(sum[j]-sum[i-1]);
}
}
for(int len=2;len<=m;len++){
for(int l=1;l<=2*n;l++){
for(int r=l+len-1;r<=2*n;r++){
for(int k=l+len-2;k<r;k++){
dp[l][r][len]=max(dp[l][r][len],dp[l][k-1][len-1]*Mod(sum[r]-sum[k-1]));
dp2[l][r][len]=min(dp[l][r][len],dp[l][k-1][len-1]*Mod(sum[r]-sum[k-1]));
}
}
}
}
int ans=0,ans2=INT_MAX;
for(int i=1;i<=n;i++){
ans=max(ans,dp[i][i+n-1][m]);
ans2=min(ans2,dp2[i][i+n-1][m]);
}
cout<<ans2<<endl<<ans;
return 0;
}