-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem 18
More file actions
65 lines (57 loc) · 1.96 KB
/
Copy pathproblem 18
File metadata and controls
65 lines (57 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*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.
3
7,4
2,4,6
8,5,9,3
That,is,,3,+,7,+,4,+,9,=,23.
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,9,70,98,73,93,38,53,60,04,23
NOTE:,As,there,are,only,16384,routes,,it,is,possible,to,solve,this,problem,by,trying,every,route.,However,,Problem,67,,is,the,same,challenge,with,a,triangle,containing,one-hundred,rows;,it,cannot,be,solved,by,brute,force,,and,requires,a,clever,method!,;o)
*/
#include<iostream>
#include<vector>
using namespace std;
int main() {
int allnum [15][15]= {
{75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{95,64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{17,47,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{18,35,87,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{20,04,82,47,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{19,01,23,75,03,34, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{88,02,77,73,07,63,67, 0, 0, 0, 0, 0, 0, 0, 0},
{99,65,04,28,06,16,70,92, 0, 0, 0, 0, 0, 0, 0},
{41,41,26,56,83,40,80,70,33, 0, 0, 0, 0, 0, 0},
{41,48,72,33,47,32,37,16,94,29, 0, 0, 0, 0, 0},
{53,71,44,65,25,43,91,52,97,51,14, 0, 0, 0, 0},
{70,11,33,28,77,73,17,78,39,68,17,57, 0, 0, 0},
{91,71,52,38,17,14,91,43,58,50,27,29,48, 0, 0},
{63,66,04,68,89,53,67,30,73,16,69,87,40,31, 0},
{04,62,98,27,23, 9,70,98,73,93,38,53,60,04,23}};
for(int row = 13; row >= 0; row--){
for(int col = 0; col <= 13; col++){
if(allnum[row + 1][col] > allnum[row + 1][col + 1]){
allnum[row][col] += allnum[row + 1][col];
}
else{
allnum[row][col] += allnum[row + 1][col + 1];
}
}
}
cout<<allnum[0][0]<<endl;
return 0;
}