#include<stdio.h> int path(int a[][100],int n,int i,int j) { int l=0; if(n==0) return a[i][j]; else if(path(a,n-1,i+1,j)>=path(a,n-1,i+1,j+1)) { l=a[i+1][j]+path(a,n-1,i+1,j); } else if(path(a,n-1,i+1,j)<path(a,n-1,i+1,j+1)) { l=a[i+1][j+1]+path(a,n-1,i+1,j+1); } if(i==0&&j==0) { l+=a[0][0]; } return l; } int main() { int t,n,a[100][100]; scanf("%d",&t); for(int i =0;i<t;i++) { scanf("%d",&n); for(int j=0;j<n;j++) { for(int k=0;k<j+1;k++) { scanf("%d",&a[j][k]); } } int max=path(a,n,0,0); printf("%d",max); } return 0; } |
Double click to view unformatted code.