4 solutions

  • 1
    @ 2026-5-14 21:25:53
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1010;
    int a[N][N];
    int st[N][N];
    int n;
    int dfs(int x,int y)
    {
        if(st[x][y]!=-1)
        {
            return st[x][y];
        }
    	if(a[x][y]==-1)
    	{
    		return 0;
    	}
    	int t=a[x][y]+max(dfs(x+1,y),dfs(x+1,y+1));
        st[x][y]=t;
    	return t;
    }
    int main()
    {
    	cin>>n;
    	memset(a,-1,sizeof a);
        memset(st,-1,sizeof st);
    
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=i;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    	cout<<dfs(1,1);
    	return 0;
    }
    

    Information

    ID
    972
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    90
    Accepted
    34
    Uploaded By