数塔问题,不知道代码哪有问题,急求大佬指点。

#include<cstring>
using namespace std;

int main(){
    int n,i,j;
    cin>>n;
    int a[n][n];int maxdp[n][n];int path[n][n];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<=i;j++){
            cin>>a[i][j];
            maxdp[i][j]=a[i][j];
            path[i][j]=0;
        } 
    }
    for(int i=n-1;i>=1;i--)
    {
        for(int j=0;j<i;j++){
            if(maxdp[i+1][j]<maxdp[i+1][j+1])
              {  
                 maxdp[i][j]+=maxdp[i+1][j+1];
                 path[i][j]=j+1; 
              }
            else
              {
                 maxdp[i][j]+=maxdp[i+1][j];
                 path[i][j]=j;  
              }
        }

    }
    cout<<"路径为:"<<maxdp[0][0] ;
    j=path[0][0];
    for(int i=1;i<n;i++)
    {
            cout<<"-->"<<a[i][j];

            j=path[i][j];

    }
    return maxdp[0][0];
    //return 0;
}

![图片说明](https://img-ask.csdn.net/upload/201904/18/1555550726_584695.png)

在之前将maxdp给memset为0