38 lines
702 B
C++
38 lines
702 B
C++
#include<cstdio>
|
|
#include<cstring>
|
|
typedef int arr[101][101];
|
|
arr a,b,c;
|
|
int d[101];
|
|
int f,v;
|
|
int main(void)
|
|
{
|
|
scanf("%d%d",&f,&v);
|
|
for (int i=1;i<=f;i++)
|
|
for (int j=1;j<=v;j++)
|
|
scanf("%d",&a[i][j]);
|
|
for (int i=1;i<=v-f+1;i++)
|
|
b[1][i]=a[1][i];
|
|
for (int i=2;i<=f;i++)
|
|
for (int j=i;j<=v-f+i;j++)
|
|
for (int k=i-1;k<j;k++)
|
|
if (b[i-1][k]+a[i][j]>b[i][j])
|
|
{
|
|
b[i][j]=b[i-1][k]+a[i][j];
|
|
c[i][j]=k;
|
|
}
|
|
int max=0,k;
|
|
for (int i=f;i<=v;i++)
|
|
if (b[f][i]>max)
|
|
max=b[f][k=i];
|
|
printf("%d\n",max);
|
|
for (int i=1;i<=f;i++)
|
|
{
|
|
d[i]=k;
|
|
k=c[f-i+1][k];
|
|
}
|
|
for (int i=f;i>=2;i--)
|
|
printf("%d ",d[i]);
|
|
printf("%d\n",d[1]);
|
|
return 0;
|
|
}
|
|
|