By starting at the top of the triangle below and moving to adjacent
numbers on the row below, the maximum total from top to bottom is 23.
Find the maximum total from top to bottom of the triangle below:
3
7 4
2 4 6
8 5 9 3
That is, 3 + 7 + 4 + 9 = 23.7 4
2 4 6
8 5 9 3
Find the maximum total from top to bottom of the triangle below:
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
ALGORITHM
3
2 4
10 11 1
2+max(10,11),4+max(11,1) = 13,15
3
13 15
3+max(13,15)=18
18
The same procedure we can apply for this big triangle
C PROGRAM:
#include<stdio.h>
static int a[15][15];
static int res[15];
int max(int a,int b)
{
if(a>b)return a;
return b;
}
main()
{
int m,n;
for(m=0;m<15;m++)
for(n=0;n<=m;n++)
{
scanf("%d",&a[m][n]);
}
for(m=13;m>=0;m--)
{
for(n=0;n<=m;n++)
{
a[m][n]=max(a[m][n]+a[m+1][n],a[m][n]+a[m+1][n+1]);
}
}
printf("%d",a[0][0]);
}
No comments:
Post a Comment