View Code of Problem 65

#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.


Back to problem 65