#include<stdio.h> #define max(a,b) (a>b?a:b) int m,n; int a[110][110],b[110][110],ans[1111],cnt; int main() { scanf("%d %d",&m,&n); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) b[i][j]=max(b[i-1][j],b[i][j-1])+a[i][j]; int x=m,y=n; do { if(x==1&&y==1) { ans[++cnt]=a[1][1]; break; } ans[++cnt]=a[x][y]; if(b[x-1][y]+a[x][y]==b[x][y]) x--; else y--; }while(1); for(int i=cnt;i>=1;i--) { printf("%d",ans[i]); if(i!=1) printf("-"); } return 0; } /************************************************************** Problem: 1374 User: admin Language: C Result: Accepted Time:13 ms Memory:1244 kb ****************************************************************/