From 346ebc4cad7b1bcbfb279b98527ff65b7129b502 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Mon, 18 Jul 2022 19:37:12 +0000 Subject: [PATCH] 67 because it was similar and linked in problem 18. Co-authored-by: sigonasr2 --- archives/67/current | Bin 0 -> 66136 bytes archives/67/src/main.c | 147 +++++++++++++++++++++++++++++++++++++ archives/67/src/utils.c | 54 ++++++++++++++ archives/67/src/utils.h | 9 +++ current | Bin 16944 -> 66136 bytes p067_triangle.txt | 100 +++++++++++++++++++++++++ src/main.c | 157 +++++++++++++++++++++++++++++----------- 7 files changed, 424 insertions(+), 43 deletions(-) create mode 100755 archives/67/current create mode 100644 archives/67/src/main.c create mode 100644 archives/67/src/utils.c create mode 100644 archives/67/src/utils.h create mode 100644 p067_triangle.txt diff --git a/archives/67/current b/archives/67/current new file mode 100755 index 0000000000000000000000000000000000000000..75d181a272d16324004b7b8d698c4a4cabe47bc0 GIT binary patch literal 66136 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

#Nhd1AC|$@Z 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 +#include "utils.h" + +#define TARGET 2 + +/* + 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 in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows. + + NOTE: This is a much more difficult version of Problem 18. It is not possible to try every route to solve this problem, as there are 299 altogether! If you could check one trillion (112) routes every second it would take over twenty billion years to check them all. There is an efficient algorithm to solve it. ;o) + + https://projecteuler.net/problem=67 +*/ + +int main(int argc,char**argv) { + int rows[][100] = { + {59}, + {73,41}, + {52,40,9}, + {26,53,6,34}, + {10,51,87,86,81}, + {61,95,66,57,25,68}, + {90,81,80,38,92,67,73}, + {30,28,51,76,81,18,75,44}, + {84,14,95,87,62,81,17,78,58}, + {21,46,71,58,2,79,62,39,31,9}, + {56,34,35,53,78,31,81,18,90,93,15}, + {78,53,4,21,84,93,32,13,97,11,37,51}, + {45,3,81,79,5,18,78,86,13,30,63,99,95}, + {39,87,96,28,3,38,42,17,82,87,58,7,22,57}, + {6,17,51,17,7,93,9,7,75,97,95,78,87,8,53}, + {67,66,59,60,88,99,94,65,55,77,55,34,27,53,78,28}, + {76,40,41,4,87,16,9,42,75,69,23,97,30,60,10,79,87}, + {12,10,44,26,21,36,32,84,98,60,13,12,36,16,63,31,91,35}, + {70,39,6,5,55,27,38,48,28,22,34,35,62,62,15,14,94,89,86}, + {66,56,68,84,96,21,34,34,34,81,62,40,65,54,62,5,98,3,2,60}, + {38,89,46,37,99,54,34,53,36,14,70,26,2,90,45,13,31,61,83,73,47}, + {36,10,63,96,60,49,41,5,37,42,14,58,84,93,96,17,9,43,5,43,6,59}, + {66,57,87,57,61,28,37,51,84,73,79,15,39,95,88,87,43,39,11,86,77,74,18}, + {54,42,5,79,30,49,99,73,46,37,50,2,45,9,54,52,27,95,27,65,19,45,26,45}, + {71,39,17,78,76,29,52,90,18,99,78,19,35,62,71,19,23,65,93,85,49,33,75,9,2}, + {33,24,47,61,60,55,32,88,57,55,91,54,46,57,7,77,98,52,80,99,24,25,46,78,79,5}, + {92,9,13,55,10,67,26,78,76,82,63,49,51,31,24,68,5,57,7,54,69,21,67,43,17,63,12}, + {24,59,6,8,98,74,66,26,61,60,13,3,9,9,24,30,71,8,88,70,72,70,29,90,11,82,41,34}, + {66,82,67,4,36,60,92,77,91,85,62,49,59,61,30,90,29,94,26,41,89,4,53,22,83,41,9,74,90}, + {48,28,26,37,28,52,77,26,51,32,18,98,79,36,62,13,17,8,19,54,89,29,73,68,42,14,8,16,70,37}, + {37,60,69,70,72,71,9,59,13,60,38,13,57,36,9,30,43,89,30,39,15,2,44,73,5,73,26,63,56,86,12}, + {55,55,85,50,62,99,84,77,28,85,3,21,27,22,19,26,82,69,54,4,13,7,85,14,1,15,70,59,89,95,10,19}, + {4,9,31,92,91,38,92,86,98,75,21,5,64,42,62,84,36,20,73,42,21,23,22,51,51,79,25,45,85,53,3,43,22}, + {75,63,2,49,14,12,89,14,60,78,92,16,44,82,38,30,72,11,46,52,90,27,8,65,78,3,85,41,57,79,39,52,33,48}, + {78,27,56,56,39,13,19,43,86,72,58,95,39,7,4,34,21,98,39,15,39,84,89,69,84,46,37,57,59,35,59,50,26,15,93}, + {42,89,36,27,78,91,24,11,17,41,5,94,7,69,51,96,3,96,47,90,90,45,91,20,50,56,10,32,36,49,4,53,85,92,25,65}, + {52,9,61,30,61,97,66,21,96,92,98,90,6,34,96,60,32,69,68,33,75,84,18,31,71,50,84,63,3,3,19,11,28,42,75,45,45}, + {61,31,61,68,96,34,49,39,5,71,76,59,62,67,6,47,96,99,34,21,32,47,52,7,71,60,42,72,94,56,82,83,84,40,94,87,82,46}, + {1,20,60,14,17,38,26,78,66,81,45,95,18,51,98,81,48,16,53,88,37,52,69,95,72,93,22,34,98,20,54,27,73,61,56,63,60,34,63}, + {93,42,94,83,47,61,27,51,79,79,45,1,44,73,31,70,83,42,88,25,53,51,30,15,65,94,80,44,61,84,12,77,2,62,2,65,94,42,14,94}, + {32,73,9,67,68,29,74,98,10,19,85,48,38,31,85,67,53,93,93,77,47,67,39,72,94,53,18,43,77,40,78,32,29,59,24,6,2,83,50,60,66}, + {32,1,44,30,16,51,15,81,98,15,10,62,86,79,50,62,45,60,70,38,31,85,65,61,64,6,69,84,14,22,56,43,9,48,66,69,83,91,60,40,36,61}, + {92,48,22,99,15,95,64,43,1,16,94,2,99,19,17,69,11,58,97,56,89,31,77,45,67,96,12,73,8,20,36,47,81,44,50,64,68,85,40,81,85,52,9}, + {91,35,92,45,32,84,62,15,19,64,21,66,6,1,52,80,62,59,12,25,88,28,91,50,40,16,22,99,92,79,87,51,21,77,74,77,7,42,38,42,74,83,2,5}, + {46,19,77,66,24,18,5,32,2,84,31,99,92,58,96,72,91,36,62,99,55,29,53,42,12,37,26,58,89,50,66,19,82,75,12,48,24,87,91,85,2,7,3,76,86}, + {99,98,84,93,7,17,33,61,92,20,66,60,24,66,40,30,67,5,37,29,24,96,3,27,70,62,13,4,45,47,59,88,43,20,66,15,46,92,30,4,71,66,78,70,53,99}, + {67,60,38,6,88,4,17,72,10,99,71,7,42,25,54,5,26,64,91,50,45,71,6,30,67,48,69,82,8,56,80,67,18,46,66,63,1,20,8,80,47,7,91,16,3,79,87}, + {18,54,78,49,80,48,77,40,68,23,60,88,58,80,33,57,11,69,55,53,64,2,94,49,60,92,16,35,81,21,82,96,25,24,96,18,2,5,49,3,50,77,6,32,84,27,18,38}, + {68,1,50,4,3,21,42,94,53,24,89,5,92,26,52,36,68,11,85,1,4,42,2,45,15,6,50,4,53,73,25,74,81,88,98,21,67,84,79,97,99,20,95,4,40,46,2,58,87}, + {94,10,2,78,88,52,21,3,88,60,6,53,49,71,20,91,12,65,7,49,21,22,11,41,58,99,36,16,9,48,17,24,52,36,23,15,72,16,84,56,2,99,43,76,81,71,29,39,49,17}, + {64,39,59,84,86,16,17,66,3,9,43,6,64,18,63,29,68,6,23,7,87,14,26,35,17,12,98,41,53,64,78,18,98,27,28,84,80,67,75,62,10,11,76,90,54,10,5,54,41,39,66}, + {43,83,18,37,32,31,52,29,95,47,8,76,35,11,4,53,35,43,34,10,52,57,12,36,20,39,40,55,78,44,7,31,38,26,8,15,56,88,86,1,52,62,10,24,32,5,60,65,53,28,57,99}, + {3,50,3,52,7,73,49,92,66,80,1,46,8,67,25,36,73,93,7,42,25,53,13,96,76,83,87,90,54,89,78,22,78,91,73,51,69,9,79,94,83,53,9,40,69,62,10,79,49,47,3,81,30}, + {71,54,73,33,51,76,59,54,79,37,56,45,84,17,62,21,98,69,41,95,65,24,39,37,62,3,24,48,54,64,46,82,71,78,33,67,9,16,96,68,52,74,79,68,32,21,13,78,96,60,9,69,20,36}, + {73,26,21,44,46,38,17,83,65,98,7,23,52,46,61,97,33,13,60,31,70,15,36,77,31,58,56,93,75,68,21,36,69,53,90,75,25,82,39,50,65,94,29,30,11,33,11,13,96,2,56,47,7,49,2}, + {76,46,73,30,10,20,60,70,14,56,34,26,37,39,48,24,55,76,84,91,39,86,95,61,50,14,53,93,64,67,37,31,10,84,42,70,48,20,10,72,60,61,84,79,69,65,99,73,89,25,85,48,92,56,97,16}, + {3,14,80,27,22,30,44,27,67,75,79,32,51,54,81,29,65,14,19,4,13,82,4,91,43,40,12,52,29,99,7,76,60,25,1,7,61,71,37,92,40,47,99,66,57,1,43,44,22,40,53,53,9,69,26,81,7}, + {49,80,56,90,93,87,47,13,75,28,87,23,72,79,32,18,27,20,28,10,37,59,21,18,70,4,79,96,3,31,45,71,81,6,14,18,17,5,31,50,92,79,23,47,9,39,47,91,43,54,69,47,42,95,62,46,32,85}, + {37,18,62,85,87,28,64,5,77,51,47,26,30,65,5,70,65,75,59,80,42,52,25,20,44,10,92,17,71,95,52,14,77,13,24,55,11,65,26,91,1,30,63,15,49,48,41,17,67,47,3,68,20,90,98,32,4,40,68}, + {90,51,58,60,6,55,23,68,5,19,76,94,82,36,96,43,38,90,87,28,33,83,5,17,70,83,96,93,6,4,78,47,80,6,23,84,75,23,87,72,99,14,50,98,92,38,90,64,61,58,76,94,36,66,87,80,51,35,61,38}, + {57,95,64,6,53,36,82,51,40,33,47,14,7,98,78,65,39,58,53,6,50,53,4,69,40,68,36,69,75,78,75,60,3,32,39,24,74,47,26,90,13,40,44,71,90,76,51,24,36,50,25,45,70,80,61,80,61,43,90,64,11}, + {18,29,86,56,68,42,79,10,42,44,30,12,96,18,23,18,52,59,2,99,67,46,60,86,43,38,55,17,44,93,42,21,55,14,47,34,55,16,49,24,23,29,96,51,55,10,46,53,27,92,27,46,63,57,30,65,43,27,21,20,24,83}, + {81,72,93,19,69,52,48,1,13,83,92,69,20,48,69,59,20,62,5,42,28,89,90,99,32,72,84,17,8,87,36,3,60,31,36,36,81,26,97,36,48,54,56,56,27,16,91,8,23,11,87,99,33,47,2,14,44,73,70,99,43,35,33}, + {90,56,61,86,56,12,70,59,63,32,1,15,81,47,71,76,95,32,65,80,54,70,34,51,40,45,33,4,64,55,78,68,88,47,31,47,68,87,3,84,23,44,89,72,35,8,31,76,63,26,90,85,96,67,65,91,19,14,17,86,4,71,32,95}, + {37,13,4,22,64,37,37,28,56,62,86,33,7,37,10,44,52,82,52,6,19,52,57,75,90,26,91,24,6,21,14,67,76,30,46,14,35,89,89,41,3,64,56,97,87,63,22,34,3,79,17,45,11,53,25,56,96,61,23,18,63,31,37,37,47}, + {77,23,26,70,72,76,77,4,28,64,71,69,14,85,96,54,95,48,6,62,99,83,86,77,97,75,71,66,30,19,57,90,33,1,60,61,14,12,90,99,32,77,56,41,18,14,87,49,10,14,90,64,18,50,21,74,14,16,88,5,45,73,82,47,74,44}, + {22,97,41,13,34,31,54,61,56,94,3,24,59,27,98,77,4,9,37,40,12,26,87,9,71,70,7,18,64,57,80,21,12,71,83,94,60,39,73,79,73,19,97,32,64,29,41,7,48,84,85,67,12,74,95,20,24,52,41,67,56,61,29,93,35,72,69}, + {72,23,63,66,1,11,7,30,52,56,95,16,65,26,83,90,50,74,60,18,16,48,43,77,37,11,99,98,30,94,91,26,62,73,45,12,87,73,47,27,1,88,66,99,21,41,95,80,2,53,23,32,61,48,32,43,43,83,14,66,95,91,19,81,80,67,25,88}, + {8,62,32,18,92,14,83,71,37,96,11,83,39,99,5,16,23,27,10,67,2,25,44,11,55,31,46,64,41,56,44,74,26,81,51,31,45,85,87,9,81,95,22,28,76,69,46,48,64,87,67,76,27,89,31,11,74,16,62,3,60,94,42,47,9,34,94,93,72}, + {56,18,90,18,42,17,42,32,14,86,6,53,33,95,99,35,29,15,44,20,49,59,25,54,34,59,84,21,23,54,35,90,78,16,93,13,37,88,54,19,86,67,68,55,66,84,65,42,98,37,87,56,33,28,58,38,28,38,66,27,52,21,81,15,8,22,97,32,85,27}, + {91,53,40,28,13,34,91,25,1,63,50,37,22,49,71,58,32,28,30,18,68,94,23,83,63,62,94,76,80,41,90,22,82,52,29,12,18,56,10,8,35,14,37,57,23,65,67,40,72,39,93,39,70,89,40,34,7,46,94,22,20,5,53,64,56,30,5,56,61,88,27}, + {23,95,11,12,37,69,68,24,66,10,87,70,43,50,75,7,62,41,83,58,95,93,89,79,45,39,2,22,5,22,95,43,62,11,68,29,17,40,26,44,25,71,87,16,70,85,19,25,59,94,90,41,41,80,61,70,55,60,84,33,95,76,42,63,15,9,3,40,38,12,3,32}, + {9,84,56,80,61,55,85,97,16,94,82,94,98,57,84,30,84,48,93,90,71,5,95,90,73,17,30,98,40,64,65,89,7,79,9,19,56,36,42,30,23,69,73,72,7,5,27,61,24,31,43,48,71,84,21,28,26,65,65,59,65,74,77,20,10,81,61,84,95,8,52,23,70}, + {47,81,28,9,98,51,67,64,35,51,59,36,92,82,77,65,80,24,72,53,22,7,27,10,21,28,30,22,48,82,80,48,56,20,14,43,18,25,50,95,90,31,77,8,9,48,44,80,90,22,93,45,82,17,13,96,25,26,8,73,34,99,6,49,24,6,83,51,40,14,15,10,25,1}, + {54,25,10,81,30,64,24,74,75,80,36,75,82,60,22,69,72,91,45,67,3,62,79,54,89,74,44,83,64,96,66,73,44,30,74,50,37,5,9,97,70,1,60,46,37,91,39,75,75,18,58,52,72,78,51,81,86,52,8,97,1,46,43,66,98,62,81,18,70,93,73,8,32,46,34}, + {96,80,82,7,59,71,92,53,19,20,88,66,3,26,26,10,24,27,50,82,94,73,63,8,51,33,22,45,19,13,58,33,90,15,22,50,36,13,55,6,35,47,82,52,33,61,36,27,28,46,98,14,73,20,73,32,16,26,80,53,47,66,76,38,94,45,2,1,22,52,47,96,64,58,52,39}, + {88,46,23,39,74,63,81,64,20,90,33,33,76,55,58,26,10,46,42,26,74,74,12,83,32,43,9,2,73,55,86,54,85,34,28,23,29,79,91,62,47,41,82,87,99,22,48,90,20,5,96,75,95,4,43,28,81,39,81,1,28,42,78,25,39,77,90,57,58,98,17,36,73,22,63,74,51}, + {29,39,74,94,95,78,64,24,38,86,63,87,93,6,70,92,22,16,80,64,29,52,20,27,23,50,14,13,87,15,72,96,81,22,8,49,72,30,70,24,79,31,16,64,59,21,89,34,96,91,48,76,43,53,88,1,57,80,23,81,90,79,58,1,80,87,17,99,86,90,72,63,32,69,14,28,88,69}, + {37,17,71,95,56,93,71,35,43,45,4,98,92,94,84,96,11,30,31,27,31,60,92,3,48,5,98,91,86,94,35,90,90,8,48,19,33,28,68,37,59,26,65,96,50,68,22,7,9,49,34,31,77,49,43,6,75,17,81,87,61,79,52,26,27,72,29,50,7,98,86,1,17,10,46,64,24,18,56}, + {51,30,25,94,88,85,79,91,40,33,63,84,49,67,98,92,15,26,75,19,82,5,18,78,65,93,61,48,91,43,59,41,70,51,22,15,92,81,67,91,46,98,11,11,65,31,66,10,98,65,83,21,5,56,5,98,73,67,46,74,69,34,8,30,5,52,7,98,32,95,30,94,65,50,24,63,28,81,99,57}, + {19,23,61,36,9,89,71,98,65,17,30,29,89,26,79,74,94,11,44,48,97,54,81,55,39,66,69,45,28,47,13,86,15,76,74,70,84,32,36,33,79,20,78,14,41,47,89,28,81,5,99,66,81,86,38,26,6,25,13,60,54,55,23,53,27,5,89,25,23,11,13,54,59,54,56,34,16,24,53,44,6}, + {13,40,57,72,21,15,60,8,4,19,11,98,34,45,9,97,86,71,3,15,56,19,15,44,97,31,90,4,87,87,76,8,12,30,24,62,84,28,12,85,82,53,99,52,13,94,6,65,97,86,9,50,94,68,69,74,30,67,87,94,63,7,78,27,80,36,69,41,6,92,32,78,37,82,30,5,18,87,99,72,19,99}, + {44,20,55,77,69,91,27,31,28,81,80,27,2,7,97,23,95,98,12,25,75,29,47,71,7,47,78,39,41,59,27,76,13,15,66,61,68,35,69,86,16,53,67,63,99,85,41,56,8,28,33,40,94,76,90,85,31,70,24,65,84,65,99,82,19,25,54,37,21,46,33,2,52,99,51,33,26,4,87,2,8,18,96}, + {54,42,61,45,91,6,64,79,80,82,32,16,83,63,42,49,19,78,65,97,40,42,14,61,49,34,4,18,25,98,59,30,82,72,26,88,54,36,21,75,3,88,99,53,46,51,55,78,22,94,34,40,68,87,84,25,30,76,25,8,92,84,42,61,40,38,9,99,40,23,29,39,46,55,10,90,35,84,56,70,63,23,91,39}, + {52,92,3,71,89,7,9,37,68,66,58,20,44,92,51,56,13,71,79,99,26,37,2,6,16,67,36,52,58,16,79,73,56,60,59,27,44,77,94,82,20,50,98,33,9,87,94,37,40,83,64,83,58,85,17,76,53,2,83,52,22,27,39,20,48,92,45,21,9,42,24,23,12,37,52,28,50,78,79,20,86,62,73,20,59}, + {54,96,80,15,91,90,99,70,10,9,58,90,93,50,81,99,54,38,36,10,30,11,35,84,16,45,82,18,11,97,36,43,96,79,97,65,40,48,23,19,17,31,64,52,65,65,37,32,65,76,99,79,34,65,79,27,55,33,3,1,33,27,61,28,66,8,4,70,49,46,48,83,1,45,19,96,13,81,14,21,31,79,93,85,50,5}, + {92,92,48,84,59,98,31,53,23,27,15,22,79,95,24,76,5,79,16,93,97,89,38,89,42,83,2,88,94,95,82,21,1,97,48,39,31,78,9,65,50,56,97,61,1,7,65,27,21,23,14,15,80,97,44,78,49,35,33,45,81,74,34,5,31,57,9,38,94,7,69,54,69,32,65,68,46,68,78,90,24,28,49,51,45,86,35}, + {41,63,89,76,87,31,86,9,46,14,87,82,22,29,47,16,13,10,70,72,82,95,48,64,58,43,13,75,42,69,21,12,67,13,64,85,58,23,98,9,37,76,5,22,31,12,66,50,29,99,86,72,45,25,10,28,19,6,90,43,29,31,67,79,46,25,74,14,97,35,76,37,65,46,23,82,6,22,30,76,93,66,94,17,96,13,20,72}, + {63,40,78,8,52,9,90,41,70,28,36,14,46,44,85,96,24,52,58,15,87,37,5,98,99,39,13,61,76,38,44,99,83,74,90,22,53,80,56,98,30,51,63,39,44,30,91,91,4,22,27,73,17,35,53,18,35,45,54,56,27,78,48,13,69,36,44,38,71,25,30,56,15,22,73,43,32,69,59,25,93,83,45,11,34,94,44,39,92}, + {12,36,56,88,13,96,16,12,55,54,11,47,19,78,17,17,68,81,77,51,42,55,99,85,66,27,81,79,93,42,65,61,69,74,14,1,18,56,12,1,58,37,91,22,42,66,83,25,19,4,96,41,25,45,18,69,96,88,36,93,10,12,98,32,44,83,83,4,72,91,4,27,73,7,34,37,71,60,59,31,1,54,54,44,96,93,83,36,4,45}, + {30,18,22,20,42,96,65,79,17,41,55,69,94,81,29,80,91,31,85,25,47,26,43,49,2,99,34,67,99,76,16,14,15,93,8,32,99,44,61,77,67,50,43,55,87,55,53,72,17,46,62,25,50,99,73,5,93,48,17,31,70,80,59,9,44,59,45,13,74,66,58,94,87,73,16,14,85,38,74,99,64,23,79,28,71,42,20,37,82,31,23}, + {51,96,39,65,46,71,56,13,29,68,53,86,45,33,51,49,12,91,21,21,76,85,2,17,98,15,46,12,60,21,88,30,92,83,44,59,42,50,27,88,46,86,94,73,45,54,23,24,14,10,94,21,20,34,23,51,4,83,99,75,90,63,60,16,22,33,83,70,11,32,10,50,29,30,83,46,11,5,31,17,86,42,49,1,44,63,28,60,7,78,95,40}, + {44,61,89,59,4,49,51,27,69,71,46,76,44,4,9,34,56,39,15,6,94,91,75,90,65,27,56,23,74,6,23,33,36,69,14,39,5,34,35,57,33,22,76,46,56,10,61,65,98,9,16,69,4,62,65,18,99,76,49,18,72,66,73,83,82,40,76,31,89,91,27,88,17,35,41,35,32,51,32,67,52,68,74,85,80,57,7,11,62,66,47,22,67}, + {65,37,19,97,26,17,16,24,24,17,50,37,64,82,24,36,32,11,68,34,69,31,32,89,79,93,96,68,49,90,14,23,4,4,67,99,81,74,70,74,36,96,68,9,64,39,88,35,54,89,96,58,66,27,88,97,32,14,6,35,78,20,71,6,85,66,57,2,58,91,72,5,29,56,73,48,86,52,9,93,22,57,79,42,12,1,31,68,17,59,63,76,7,77}, + {73,81,14,13,17,20,11,9,1,83,8,85,91,70,84,63,62,77,37,7,47,1,59,95,39,69,39,21,99,9,87,2,97,16,92,36,74,71,90,66,33,73,73,75,52,91,11,12,26,53,5,26,26,48,61,50,90,65,1,87,42,47,74,35,22,73,24,26,56,70,52,5,48,41,31,18,83,27,21,39,80,85,26,8,44,2,71,7,63,22,5,52,19,8,20}, + {17,25,21,11,72,93,33,49,64,23,53,82,3,13,91,65,85,2,40,5,42,31,77,42,5,36,6,54,4,58,7,76,87,83,25,57,66,12,74,33,85,37,74,32,20,69,3,97,91,68,82,44,19,14,89,28,85,85,80,53,34,87,58,98,88,78,48,65,98,40,11,57,10,67,70,81,60,79,74,72,97,59,79,47,30,20,54,80,89,91,14,5,33,36,79,39}, + {60,85,59,39,60,7,57,76,77,92,6,35,15,72,23,41,45,52,95,18,64,79,86,53,56,31,69,11,91,31,84,50,44,82,22,81,41,40,30,42,30,91,48,94,74,76,64,58,74,25,96,57,14,19,3,99,28,83,15,75,99,1,89,85,79,50,3,95,32,67,44,8,7,41,62,64,29,20,14,76,26,55,48,71,69,66,19,72,44,25,14,1,48,74,12,98,7}, + {64,66,84,24,18,16,27,48,20,14,47,69,30,86,48,40,23,16,61,21,51,50,26,47,35,33,91,28,78,64,43,68,4,79,51,8,19,60,52,95,6,68,46,86,35,97,27,58,4,65,30,58,99,12,12,75,91,39,50,31,42,64,70,4,46,7,98,73,98,93,37,89,77,91,64,71,64,65,66,21,78,62,81,74,42,20,83,70,73,95,78,45,92,27,34,53,71,15}, + {30,11,85,31,34,71,13,48,5,14,44,3,19,67,23,73,19,57,6,90,94,72,57,69,81,62,59,68,88,57,55,69,49,13,7,87,97,80,89,5,71,5,5,26,38,40,16,62,45,99,18,38,98,24,21,26,62,74,69,4,85,57,77,35,58,67,91,79,79,57,86,28,66,34,72,51,76,78,36,95,63,90,8,78,47,63,45,31,22,70,52,48,79,94,15,77,61,67,68}, + {23,33,44,81,80,92,93,75,94,88,23,61,39,76,22,3,28,94,32,6,49,65,41,34,18,23,8,47,62,60,3,63,33,13,80,52,31,54,73,43,70,26,16,69,57,87,83,31,3,93,70,81,47,95,77,44,29,68,39,51,56,59,63,7,25,70,7,77,43,53,64,3,94,42,95,39,18,1,66,21,16,97,20,50,90,16,70,10,95,69,29,6,25,61,41,26,15,59,63,35}, + }; + + int max=99; + for (int row=99;row>0;row--) { + for (int col=0;colnumb2)?numb1:numb2; + } + max--; + } + for (int i=0;i<100;i++) { + for (int j=0;j<100;j++) { + printf("%d\t",rows[i][j]); + } + printf("\n"); + } + + printf("\nYour maximum route is %d",rows[0][0]); + + return 0; +} \ No newline at end of file diff --git a/archives/67/src/utils.c b/archives/67/src/utils.c new file mode 100644 index 0000000..bd5f32c --- /dev/null +++ b/archives/67/src/utils.c @@ -0,0 +1,54 @@ +#include "utils.h" +#include +#include + +struct String add(struct String numb1, struct String numb2){ + byte carryover=0; + int digitCount=0; + char*str = malloc(0); + if (numb1.length>=numb2.length) { + for (int offset=0;offsetoffset) { + //printf("%c %c\n",numb1.str[numb1.length-offset-1],numb2.str[numb2.length-offset-1]); + int sum=((numb1.str[numb1.length-offset-1]-'0')+(numb2.str[numb2.length-offset-1]-'0'))+((carryover>0)?carryover--:0); + if (sum>=10) { + carryover=1; + sum-=10; + } + str[offset]=sum+'0'; + } else { + str[offset]=numb1.str[numb1.length-offset-1]; + } + } + } else { + for (int offset=0;offsetoffset) { + //printf("%c %c\n",numb1.str[numb1.length-offset-1],numb2.str[numb2.length-offset-1]); + int sum=((numb1.str[numb1.length-offset-1]-'0')+(numb2.str[numb2.length-offset-1]-'0'))+((carryover>0)?carryover--:0); + if (sum>=10) { + carryover=1; + sum-=10; + } + str[offset]=sum+'0'; + } else { + str[offset]=numb2.str[numb2.length-offset-1]; + } + } + } + if (carryover>0) { + str = realloc(str,++digitCount); + str[digitCount-1]='1'; + } + for (int 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

#Nhd1AC|$@Z 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 diff --git a/p067_triangle.txt b/p067_triangle.txt new file mode 100644 index 0000000..00aa2bc --- /dev/null +++ b/p067_triangle.txt @@ -0,0 +1,100 @@ +59 +73 41 +52 40 09 +26 53 06 34 +10 51 87 86 81 +61 95 66 57 25 68 +90 81 80 38 92 67 73 +30 28 51 76 81 18 75 44 +84 14 95 87 62 81 17 78 58 +21 46 71 58 02 79 62 39 31 09 +56 34 35 53 78 31 81 18 90 93 15 +78 53 04 21 84 93 32 13 97 11 37 51 +45 03 81 79 05 18 78 86 13 30 63 99 95 +39 87 96 28 03 38 42 17 82 87 58 07 22 57 +06 17 51 17 07 93 09 07 75 97 95 78 87 08 53 +67 66 59 60 88 99 94 65 55 77 55 34 27 53 78 28 +76 40 41 04 87 16 09 42 75 69 23 97 30 60 10 79 87 +12 10 44 26 21 36 32 84 98 60 13 12 36 16 63 31 91 35 +70 39 06 05 55 27 38 48 28 22 34 35 62 62 15 14 94 89 86 +66 56 68 84 96 21 34 34 34 81 62 40 65 54 62 05 98 03 02 60 +38 89 46 37 99 54 34 53 36 14 70 26 02 90 45 13 31 61 83 73 47 +36 10 63 96 60 49 41 05 37 42 14 58 84 93 96 17 09 43 05 43 06 59 +66 57 87 57 61 28 37 51 84 73 79 15 39 95 88 87 43 39 11 86 77 74 18 +54 42 05 79 30 49 99 73 46 37 50 02 45 09 54 52 27 95 27 65 19 45 26 45 +71 39 17 78 76 29 52 90 18 99 78 19 35 62 71 19 23 65 93 85 49 33 75 09 02 +33 24 47 61 60 55 32 88 57 55 91 54 46 57 07 77 98 52 80 99 24 25 46 78 79 05 +92 09 13 55 10 67 26 78 76 82 63 49 51 31 24 68 05 57 07 54 69 21 67 43 17 63 12 +24 59 06 08 98 74 66 26 61 60 13 03 09 09 24 30 71 08 88 70 72 70 29 90 11 82 41 34 +66 82 67 04 36 60 92 77 91 85 62 49 59 61 30 90 29 94 26 41 89 04 53 22 83 41 09 74 90 +48 28 26 37 28 52 77 26 51 32 18 98 79 36 62 13 17 08 19 54 89 29 73 68 42 14 08 16 70 37 +37 60 69 70 72 71 09 59 13 60 38 13 57 36 09 30 43 89 30 39 15 02 44 73 05 73 26 63 56 86 12 +55 55 85 50 62 99 84 77 28 85 03 21 27 22 19 26 82 69 54 04 13 07 85 14 01 15 70 59 89 95 10 19 +04 09 31 92 91 38 92 86 98 75 21 05 64 42 62 84 36 20 73 42 21 23 22 51 51 79 25 45 85 53 03 43 22 +75 63 02 49 14 12 89 14 60 78 92 16 44 82 38 30 72 11 46 52 90 27 08 65 78 03 85 41 57 79 39 52 33 48 +78 27 56 56 39 13 19 43 86 72 58 95 39 07 04 34 21 98 39 15 39 84 89 69 84 46 37 57 59 35 59 50 26 15 93 +42 89 36 27 78 91 24 11 17 41 05 94 07 69 51 96 03 96 47 90 90 45 91 20 50 56 10 32 36 49 04 53 85 92 25 65 +52 09 61 30 61 97 66 21 96 92 98 90 06 34 96 60 32 69 68 33 75 84 18 31 71 50 84 63 03 03 19 11 28 42 75 45 45 +61 31 61 68 96 34 49 39 05 71 76 59 62 67 06 47 96 99 34 21 32 47 52 07 71 60 42 72 94 56 82 83 84 40 94 87 82 46 +01 20 60 14 17 38 26 78 66 81 45 95 18 51 98 81 48 16 53 88 37 52 69 95 72 93 22 34 98 20 54 27 73 61 56 63 60 34 63 +93 42 94 83 47 61 27 51 79 79 45 01 44 73 31 70 83 42 88 25 53 51 30 15 65 94 80 44 61 84 12 77 02 62 02 65 94 42 14 94 +32 73 09 67 68 29 74 98 10 19 85 48 38 31 85 67 53 93 93 77 47 67 39 72 94 53 18 43 77 40 78 32 29 59 24 06 02 83 50 60 66 +32 01 44 30 16 51 15 81 98 15 10 62 86 79 50 62 45 60 70 38 31 85 65 61 64 06 69 84 14 22 56 43 09 48 66 69 83 91 60 40 36 61 +92 48 22 99 15 95 64 43 01 16 94 02 99 19 17 69 11 58 97 56 89 31 77 45 67 96 12 73 08 20 36 47 81 44 50 64 68 85 40 81 85 52 09 +91 35 92 45 32 84 62 15 19 64 21 66 06 01 52 80 62 59 12 25 88 28 91 50 40 16 22 99 92 79 87 51 21 77 74 77 07 42 38 42 74 83 02 05 +46 19 77 66 24 18 05 32 02 84 31 99 92 58 96 72 91 36 62 99 55 29 53 42 12 37 26 58 89 50 66 19 82 75 12 48 24 87 91 85 02 07 03 76 86 +99 98 84 93 07 17 33 61 92 20 66 60 24 66 40 30 67 05 37 29 24 96 03 27 70 62 13 04 45 47 59 88 43 20 66 15 46 92 30 04 71 66 78 70 53 99 +67 60 38 06 88 04 17 72 10 99 71 07 42 25 54 05 26 64 91 50 45 71 06 30 67 48 69 82 08 56 80 67 18 46 66 63 01 20 08 80 47 07 91 16 03 79 87 +18 54 78 49 80 48 77 40 68 23 60 88 58 80 33 57 11 69 55 53 64 02 94 49 60 92 16 35 81 21 82 96 25 24 96 18 02 05 49 03 50 77 06 32 84 27 18 38 +68 01 50 04 03 21 42 94 53 24 89 05 92 26 52 36 68 11 85 01 04 42 02 45 15 06 50 04 53 73 25 74 81 88 98 21 67 84 79 97 99 20 95 04 40 46 02 58 87 +94 10 02 78 88 52 21 03 88 60 06 53 49 71 20 91 12 65 07 49 21 22 11 41 58 99 36 16 09 48 17 24 52 36 23 15 72 16 84 56 02 99 43 76 81 71 29 39 49 17 +64 39 59 84 86 16 17 66 03 09 43 06 64 18 63 29 68 06 23 07 87 14 26 35 17 12 98 41 53 64 78 18 98 27 28 84 80 67 75 62 10 11 76 90 54 10 05 54 41 39 66 +43 83 18 37 32 31 52 29 95 47 08 76 35 11 04 53 35 43 34 10 52 57 12 36 20 39 40 55 78 44 07 31 38 26 08 15 56 88 86 01 52 62 10 24 32 05 60 65 53 28 57 99 +03 50 03 52 07 73 49 92 66 80 01 46 08 67 25 36 73 93 07 42 25 53 13 96 76 83 87 90 54 89 78 22 78 91 73 51 69 09 79 94 83 53 09 40 69 62 10 79 49 47 03 81 30 +71 54 73 33 51 76 59 54 79 37 56 45 84 17 62 21 98 69 41 95 65 24 39 37 62 03 24 48 54 64 46 82 71 78 33 67 09 16 96 68 52 74 79 68 32 21 13 78 96 60 09 69 20 36 +73 26 21 44 46 38 17 83 65 98 07 23 52 46 61 97 33 13 60 31 70 15 36 77 31 58 56 93 75 68 21 36 69 53 90 75 25 82 39 50 65 94 29 30 11 33 11 13 96 02 56 47 07 49 02 +76 46 73 30 10 20 60 70 14 56 34 26 37 39 48 24 55 76 84 91 39 86 95 61 50 14 53 93 64 67 37 31 10 84 42 70 48 20 10 72 60 61 84 79 69 65 99 73 89 25 85 48 92 56 97 16 +03 14 80 27 22 30 44 27 67 75 79 32 51 54 81 29 65 14 19 04 13 82 04 91 43 40 12 52 29 99 07 76 60 25 01 07 61 71 37 92 40 47 99 66 57 01 43 44 22 40 53 53 09 69 26 81 07 +49 80 56 90 93 87 47 13 75 28 87 23 72 79 32 18 27 20 28 10 37 59 21 18 70 04 79 96 03 31 45 71 81 06 14 18 17 05 31 50 92 79 23 47 09 39 47 91 43 54 69 47 42 95 62 46 32 85 +37 18 62 85 87 28 64 05 77 51 47 26 30 65 05 70 65 75 59 80 42 52 25 20 44 10 92 17 71 95 52 14 77 13 24 55 11 65 26 91 01 30 63 15 49 48 41 17 67 47 03 68 20 90 98 32 04 40 68 +90 51 58 60 06 55 23 68 05 19 76 94 82 36 96 43 38 90 87 28 33 83 05 17 70 83 96 93 06 04 78 47 80 06 23 84 75 23 87 72 99 14 50 98 92 38 90 64 61 58 76 94 36 66 87 80 51 35 61 38 +57 95 64 06 53 36 82 51 40 33 47 14 07 98 78 65 39 58 53 06 50 53 04 69 40 68 36 69 75 78 75 60 03 32 39 24 74 47 26 90 13 40 44 71 90 76 51 24 36 50 25 45 70 80 61 80 61 43 90 64 11 +18 29 86 56 68 42 79 10 42 44 30 12 96 18 23 18 52 59 02 99 67 46 60 86 43 38 55 17 44 93 42 21 55 14 47 34 55 16 49 24 23 29 96 51 55 10 46 53 27 92 27 46 63 57 30 65 43 27 21 20 24 83 +81 72 93 19 69 52 48 01 13 83 92 69 20 48 69 59 20 62 05 42 28 89 90 99 32 72 84 17 08 87 36 03 60 31 36 36 81 26 97 36 48 54 56 56 27 16 91 08 23 11 87 99 33 47 02 14 44 73 70 99 43 35 33 +90 56 61 86 56 12 70 59 63 32 01 15 81 47 71 76 95 32 65 80 54 70 34 51 40 45 33 04 64 55 78 68 88 47 31 47 68 87 03 84 23 44 89 72 35 08 31 76 63 26 90 85 96 67 65 91 19 14 17 86 04 71 32 95 +37 13 04 22 64 37 37 28 56 62 86 33 07 37 10 44 52 82 52 06 19 52 57 75 90 26 91 24 06 21 14 67 76 30 46 14 35 89 89 41 03 64 56 97 87 63 22 34 03 79 17 45 11 53 25 56 96 61 23 18 63 31 37 37 47 +77 23 26 70 72 76 77 04 28 64 71 69 14 85 96 54 95 48 06 62 99 83 86 77 97 75 71 66 30 19 57 90 33 01 60 61 14 12 90 99 32 77 56 41 18 14 87 49 10 14 90 64 18 50 21 74 14 16 88 05 45 73 82 47 74 44 +22 97 41 13 34 31 54 61 56 94 03 24 59 27 98 77 04 09 37 40 12 26 87 09 71 70 07 18 64 57 80 21 12 71 83 94 60 39 73 79 73 19 97 32 64 29 41 07 48 84 85 67 12 74 95 20 24 52 41 67 56 61 29 93 35 72 69 +72 23 63 66 01 11 07 30 52 56 95 16 65 26 83 90 50 74 60 18 16 48 43 77 37 11 99 98 30 94 91 26 62 73 45 12 87 73 47 27 01 88 66 99 21 41 95 80 02 53 23 32 61 48 32 43 43 83 14 66 95 91 19 81 80 67 25 88 +08 62 32 18 92 14 83 71 37 96 11 83 39 99 05 16 23 27 10 67 02 25 44 11 55 31 46 64 41 56 44 74 26 81 51 31 45 85 87 09 81 95 22 28 76 69 46 48 64 87 67 76 27 89 31 11 74 16 62 03 60 94 42 47 09 34 94 93 72 +56 18 90 18 42 17 42 32 14 86 06 53 33 95 99 35 29 15 44 20 49 59 25 54 34 59 84 21 23 54 35 90 78 16 93 13 37 88 54 19 86 67 68 55 66 84 65 42 98 37 87 56 33 28 58 38 28 38 66 27 52 21 81 15 08 22 97 32 85 27 +91 53 40 28 13 34 91 25 01 63 50 37 22 49 71 58 32 28 30 18 68 94 23 83 63 62 94 76 80 41 90 22 82 52 29 12 18 56 10 08 35 14 37 57 23 65 67 40 72 39 93 39 70 89 40 34 07 46 94 22 20 05 53 64 56 30 05 56 61 88 27 +23 95 11 12 37 69 68 24 66 10 87 70 43 50 75 07 62 41 83 58 95 93 89 79 45 39 02 22 05 22 95 43 62 11 68 29 17 40 26 44 25 71 87 16 70 85 19 25 59 94 90 41 41 80 61 70 55 60 84 33 95 76 42 63 15 09 03 40 38 12 03 32 +09 84 56 80 61 55 85 97 16 94 82 94 98 57 84 30 84 48 93 90 71 05 95 90 73 17 30 98 40 64 65 89 07 79 09 19 56 36 42 30 23 69 73 72 07 05 27 61 24 31 43 48 71 84 21 28 26 65 65 59 65 74 77 20 10 81 61 84 95 08 52 23 70 +47 81 28 09 98 51 67 64 35 51 59 36 92 82 77 65 80 24 72 53 22 07 27 10 21 28 30 22 48 82 80 48 56 20 14 43 18 25 50 95 90 31 77 08 09 48 44 80 90 22 93 45 82 17 13 96 25 26 08 73 34 99 06 49 24 06 83 51 40 14 15 10 25 01 +54 25 10 81 30 64 24 74 75 80 36 75 82 60 22 69 72 91 45 67 03 62 79 54 89 74 44 83 64 96 66 73 44 30 74 50 37 05 09 97 70 01 60 46 37 91 39 75 75 18 58 52 72 78 51 81 86 52 08 97 01 46 43 66 98 62 81 18 70 93 73 08 32 46 34 +96 80 82 07 59 71 92 53 19 20 88 66 03 26 26 10 24 27 50 82 94 73 63 08 51 33 22 45 19 13 58 33 90 15 22 50 36 13 55 06 35 47 82 52 33 61 36 27 28 46 98 14 73 20 73 32 16 26 80 53 47 66 76 38 94 45 02 01 22 52 47 96 64 58 52 39 +88 46 23 39 74 63 81 64 20 90 33 33 76 55 58 26 10 46 42 26 74 74 12 83 32 43 09 02 73 55 86 54 85 34 28 23 29 79 91 62 47 41 82 87 99 22 48 90 20 05 96 75 95 04 43 28 81 39 81 01 28 42 78 25 39 77 90 57 58 98 17 36 73 22 63 74 51 +29 39 74 94 95 78 64 24 38 86 63 87 93 06 70 92 22 16 80 64 29 52 20 27 23 50 14 13 87 15 72 96 81 22 08 49 72 30 70 24 79 31 16 64 59 21 89 34 96 91 48 76 43 53 88 01 57 80 23 81 90 79 58 01 80 87 17 99 86 90 72 63 32 69 14 28 88 69 +37 17 71 95 56 93 71 35 43 45 04 98 92 94 84 96 11 30 31 27 31 60 92 03 48 05 98 91 86 94 35 90 90 08 48 19 33 28 68 37 59 26 65 96 50 68 22 07 09 49 34 31 77 49 43 06 75 17 81 87 61 79 52 26 27 72 29 50 07 98 86 01 17 10 46 64 24 18 56 +51 30 25 94 88 85 79 91 40 33 63 84 49 67 98 92 15 26 75 19 82 05 18 78 65 93 61 48 91 43 59 41 70 51 22 15 92 81 67 91 46 98 11 11 65 31 66 10 98 65 83 21 05 56 05 98 73 67 46 74 69 34 08 30 05 52 07 98 32 95 30 94 65 50 24 63 28 81 99 57 +19 23 61 36 09 89 71 98 65 17 30 29 89 26 79 74 94 11 44 48 97 54 81 55 39 66 69 45 28 47 13 86 15 76 74 70 84 32 36 33 79 20 78 14 41 47 89 28 81 05 99 66 81 86 38 26 06 25 13 60 54 55 23 53 27 05 89 25 23 11 13 54 59 54 56 34 16 24 53 44 06 +13 40 57 72 21 15 60 08 04 19 11 98 34 45 09 97 86 71 03 15 56 19 15 44 97 31 90 04 87 87 76 08 12 30 24 62 84 28 12 85 82 53 99 52 13 94 06 65 97 86 09 50 94 68 69 74 30 67 87 94 63 07 78 27 80 36 69 41 06 92 32 78 37 82 30 05 18 87 99 72 19 99 +44 20 55 77 69 91 27 31 28 81 80 27 02 07 97 23 95 98 12 25 75 29 47 71 07 47 78 39 41 59 27 76 13 15 66 61 68 35 69 86 16 53 67 63 99 85 41 56 08 28 33 40 94 76 90 85 31 70 24 65 84 65 99 82 19 25 54 37 21 46 33 02 52 99 51 33 26 04 87 02 08 18 96 +54 42 61 45 91 06 64 79 80 82 32 16 83 63 42 49 19 78 65 97 40 42 14 61 49 34 04 18 25 98 59 30 82 72 26 88 54 36 21 75 03 88 99 53 46 51 55 78 22 94 34 40 68 87 84 25 30 76 25 08 92 84 42 61 40 38 09 99 40 23 29 39 46 55 10 90 35 84 56 70 63 23 91 39 +52 92 03 71 89 07 09 37 68 66 58 20 44 92 51 56 13 71 79 99 26 37 02 06 16 67 36 52 58 16 79 73 56 60 59 27 44 77 94 82 20 50 98 33 09 87 94 37 40 83 64 83 58 85 17 76 53 02 83 52 22 27 39 20 48 92 45 21 09 42 24 23 12 37 52 28 50 78 79 20 86 62 73 20 59 +54 96 80 15 91 90 99 70 10 09 58 90 93 50 81 99 54 38 36 10 30 11 35 84 16 45 82 18 11 97 36 43 96 79 97 65 40 48 23 19 17 31 64 52 65 65 37 32 65 76 99 79 34 65 79 27 55 33 03 01 33 27 61 28 66 08 04 70 49 46 48 83 01 45 19 96 13 81 14 21 31 79 93 85 50 05 +92 92 48 84 59 98 31 53 23 27 15 22 79 95 24 76 05 79 16 93 97 89 38 89 42 83 02 88 94 95 82 21 01 97 48 39 31 78 09 65 50 56 97 61 01 07 65 27 21 23 14 15 80 97 44 78 49 35 33 45 81 74 34 05 31 57 09 38 94 07 69 54 69 32 65 68 46 68 78 90 24 28 49 51 45 86 35 +41 63 89 76 87 31 86 09 46 14 87 82 22 29 47 16 13 10 70 72 82 95 48 64 58 43 13 75 42 69 21 12 67 13 64 85 58 23 98 09 37 76 05 22 31 12 66 50 29 99 86 72 45 25 10 28 19 06 90 43 29 31 67 79 46 25 74 14 97 35 76 37 65 46 23 82 06 22 30 76 93 66 94 17 96 13 20 72 +63 40 78 08 52 09 90 41 70 28 36 14 46 44 85 96 24 52 58 15 87 37 05 98 99 39 13 61 76 38 44 99 83 74 90 22 53 80 56 98 30 51 63 39 44 30 91 91 04 22 27 73 17 35 53 18 35 45 54 56 27 78 48 13 69 36 44 38 71 25 30 56 15 22 73 43 32 69 59 25 93 83 45 11 34 94 44 39 92 +12 36 56 88 13 96 16 12 55 54 11 47 19 78 17 17 68 81 77 51 42 55 99 85 66 27 81 79 93 42 65 61 69 74 14 01 18 56 12 01 58 37 91 22 42 66 83 25 19 04 96 41 25 45 18 69 96 88 36 93 10 12 98 32 44 83 83 04 72 91 04 27 73 07 34 37 71 60 59 31 01 54 54 44 96 93 83 36 04 45 +30 18 22 20 42 96 65 79 17 41 55 69 94 81 29 80 91 31 85 25 47 26 43 49 02 99 34 67 99 76 16 14 15 93 08 32 99 44 61 77 67 50 43 55 87 55 53 72 17 46 62 25 50 99 73 05 93 48 17 31 70 80 59 09 44 59 45 13 74 66 58 94 87 73 16 14 85 38 74 99 64 23 79 28 71 42 20 37 82 31 23 +51 96 39 65 46 71 56 13 29 68 53 86 45 33 51 49 12 91 21 21 76 85 02 17 98 15 46 12 60 21 88 30 92 83 44 59 42 50 27 88 46 86 94 73 45 54 23 24 14 10 94 21 20 34 23 51 04 83 99 75 90 63 60 16 22 33 83 70 11 32 10 50 29 30 83 46 11 05 31 17 86 42 49 01 44 63 28 60 07 78 95 40 +44 61 89 59 04 49 51 27 69 71 46 76 44 04 09 34 56 39 15 06 94 91 75 90 65 27 56 23 74 06 23 33 36 69 14 39 05 34 35 57 33 22 76 46 56 10 61 65 98 09 16 69 04 62 65 18 99 76 49 18 72 66 73 83 82 40 76 31 89 91 27 88 17 35 41 35 32 51 32 67 52 68 74 85 80 57 07 11 62 66 47 22 67 +65 37 19 97 26 17 16 24 24 17 50 37 64 82 24 36 32 11 68 34 69 31 32 89 79 93 96 68 49 90 14 23 04 04 67 99 81 74 70 74 36 96 68 09 64 39 88 35 54 89 96 58 66 27 88 97 32 14 06 35 78 20 71 06 85 66 57 02 58 91 72 05 29 56 73 48 86 52 09 93 22 57 79 42 12 01 31 68 17 59 63 76 07 77 +73 81 14 13 17 20 11 09 01 83 08 85 91 70 84 63 62 77 37 07 47 01 59 95 39 69 39 21 99 09 87 02 97 16 92 36 74 71 90 66 33 73 73 75 52 91 11 12 26 53 05 26 26 48 61 50 90 65 01 87 42 47 74 35 22 73 24 26 56 70 52 05 48 41 31 18 83 27 21 39 80 85 26 08 44 02 71 07 63 22 05 52 19 08 20 +17 25 21 11 72 93 33 49 64 23 53 82 03 13 91 65 85 02 40 05 42 31 77 42 05 36 06 54 04 58 07 76 87 83 25 57 66 12 74 33 85 37 74 32 20 69 03 97 91 68 82 44 19 14 89 28 85 85 80 53 34 87 58 98 88 78 48 65 98 40 11 57 10 67 70 81 60 79 74 72 97 59 79 47 30 20 54 80 89 91 14 05 33 36 79 39 +60 85 59 39 60 07 57 76 77 92 06 35 15 72 23 41 45 52 95 18 64 79 86 53 56 31 69 11 91 31 84 50 44 82 22 81 41 40 30 42 30 91 48 94 74 76 64 58 74 25 96 57 14 19 03 99 28 83 15 75 99 01 89 85 79 50 03 95 32 67 44 08 07 41 62 64 29 20 14 76 26 55 48 71 69 66 19 72 44 25 14 01 48 74 12 98 07 +64 66 84 24 18 16 27 48 20 14 47 69 30 86 48 40 23 16 61 21 51 50 26 47 35 33 91 28 78 64 43 68 04 79 51 08 19 60 52 95 06 68 46 86 35 97 27 58 04 65 30 58 99 12 12 75 91 39 50 31 42 64 70 04 46 07 98 73 98 93 37 89 77 91 64 71 64 65 66 21 78 62 81 74 42 20 83 70 73 95 78 45 92 27 34 53 71 15 +30 11 85 31 34 71 13 48 05 14 44 03 19 67 23 73 19 57 06 90 94 72 57 69 81 62 59 68 88 57 55 69 49 13 07 87 97 80 89 05 71 05 05 26 38 40 16 62 45 99 18 38 98 24 21 26 62 74 69 04 85 57 77 35 58 67 91 79 79 57 86 28 66 34 72 51 76 78 36 95 63 90 08 78 47 63 45 31 22 70 52 48 79 94 15 77 61 67 68 +23 33 44 81 80 92 93 75 94 88 23 61 39 76 22 03 28 94 32 06 49 65 41 34 18 23 08 47 62 60 03 63 33 13 80 52 31 54 73 43 70 26 16 69 57 87 83 31 03 93 70 81 47 95 77 44 29 68 39 51 56 59 63 07 25 70 07 77 43 53 64 03 94 42 95 39 18 01 66 21 16 97 20 50 90 16 70 10 95 69 29 06 25 61 41 26 15 59 63 35 diff --git a/src/main.c b/src/main.c index 57370fc..1714188 100644 --- a/src/main.c +++ b/src/main.c @@ -6,55 +6,126 @@ /* 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 + 3 + 7 4 + 2 4 6 + 8 5 9 3 -That is, 3 + 7 + 4 + 9 = 23. + That is, 3 + 7 + 4 + 9 = 23. -Find the maximum total from top to bottom of the triangle below: + Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows. -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 + NOTE: This is a much more difficult version of Problem 18. It is not possible to try every route to solve this problem, as there are 299 altogether! If you could check one trillion (112) routes every second it would take over twenty billion years to check them all. There is an efficient algorithm to solve it. ;o) -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) - https://projecteuler.net/problem=18 + https://projecteuler.net/problem=67 */ int main(int argc,char**argv) { - int rows[][15] = { - {75} - ,{95,64} - ,{17,47,82} - ,{18,35,87,10} - ,{20,4,82,47,65} - ,{19,1,23,75,3,34} - ,{88,2,77,73,7,63,67} - ,{99,65,4,28,6,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,4,68,89,53,67,30,73,16,69,87,40,31} - ,{4,62,98,27,23,9,70,98,73,93,38,53,60,4,23}}; + int rows[][100] = { + {59}, + {73,41}, + {52,40,9}, + {26,53,6,34}, + {10,51,87,86,81}, + {61,95,66,57,25,68}, + {90,81,80,38,92,67,73}, + {30,28,51,76,81,18,75,44}, + {84,14,95,87,62,81,17,78,58}, + {21,46,71,58,2,79,62,39,31,9}, + {56,34,35,53,78,31,81,18,90,93,15}, + {78,53,4,21,84,93,32,13,97,11,37,51}, + {45,3,81,79,5,18,78,86,13,30,63,99,95}, + {39,87,96,28,3,38,42,17,82,87,58,7,22,57}, + {6,17,51,17,7,93,9,7,75,97,95,78,87,8,53}, + {67,66,59,60,88,99,94,65,55,77,55,34,27,53,78,28}, + {76,40,41,4,87,16,9,42,75,69,23,97,30,60,10,79,87}, + {12,10,44,26,21,36,32,84,98,60,13,12,36,16,63,31,91,35}, + {70,39,6,5,55,27,38,48,28,22,34,35,62,62,15,14,94,89,86}, + {66,56,68,84,96,21,34,34,34,81,62,40,65,54,62,5,98,3,2,60}, + {38,89,46,37,99,54,34,53,36,14,70,26,2,90,45,13,31,61,83,73,47}, + {36,10,63,96,60,49,41,5,37,42,14,58,84,93,96,17,9,43,5,43,6,59}, + {66,57,87,57,61,28,37,51,84,73,79,15,39,95,88,87,43,39,11,86,77,74,18}, + {54,42,5,79,30,49,99,73,46,37,50,2,45,9,54,52,27,95,27,65,19,45,26,45}, + {71,39,17,78,76,29,52,90,18,99,78,19,35,62,71,19,23,65,93,85,49,33,75,9,2}, + {33,24,47,61,60,55,32,88,57,55,91,54,46,57,7,77,98,52,80,99,24,25,46,78,79,5}, + {92,9,13,55,10,67,26,78,76,82,63,49,51,31,24,68,5,57,7,54,69,21,67,43,17,63,12}, + {24,59,6,8,98,74,66,26,61,60,13,3,9,9,24,30,71,8,88,70,72,70,29,90,11,82,41,34}, + {66,82,67,4,36,60,92,77,91,85,62,49,59,61,30,90,29,94,26,41,89,4,53,22,83,41,9,74,90}, + {48,28,26,37,28,52,77,26,51,32,18,98,79,36,62,13,17,8,19,54,89,29,73,68,42,14,8,16,70,37}, + {37,60,69,70,72,71,9,59,13,60,38,13,57,36,9,30,43,89,30,39,15,2,44,73,5,73,26,63,56,86,12}, + {55,55,85,50,62,99,84,77,28,85,3,21,27,22,19,26,82,69,54,4,13,7,85,14,1,15,70,59,89,95,10,19}, + {4,9,31,92,91,38,92,86,98,75,21,5,64,42,62,84,36,20,73,42,21,23,22,51,51,79,25,45,85,53,3,43,22}, + {75,63,2,49,14,12,89,14,60,78,92,16,44,82,38,30,72,11,46,52,90,27,8,65,78,3,85,41,57,79,39,52,33,48}, + {78,27,56,56,39,13,19,43,86,72,58,95,39,7,4,34,21,98,39,15,39,84,89,69,84,46,37,57,59,35,59,50,26,15,93}, + {42,89,36,27,78,91,24,11,17,41,5,94,7,69,51,96,3,96,47,90,90,45,91,20,50,56,10,32,36,49,4,53,85,92,25,65}, + {52,9,61,30,61,97,66,21,96,92,98,90,6,34,96,60,32,69,68,33,75,84,18,31,71,50,84,63,3,3,19,11,28,42,75,45,45}, + {61,31,61,68,96,34,49,39,5,71,76,59,62,67,6,47,96,99,34,21,32,47,52,7,71,60,42,72,94,56,82,83,84,40,94,87,82,46}, + {1,20,60,14,17,38,26,78,66,81,45,95,18,51,98,81,48,16,53,88,37,52,69,95,72,93,22,34,98,20,54,27,73,61,56,63,60,34,63}, + {93,42,94,83,47,61,27,51,79,79,45,1,44,73,31,70,83,42,88,25,53,51,30,15,65,94,80,44,61,84,12,77,2,62,2,65,94,42,14,94}, + {32,73,9,67,68,29,74,98,10,19,85,48,38,31,85,67,53,93,93,77,47,67,39,72,94,53,18,43,77,40,78,32,29,59,24,6,2,83,50,60,66}, + {32,1,44,30,16,51,15,81,98,15,10,62,86,79,50,62,45,60,70,38,31,85,65,61,64,6,69,84,14,22,56,43,9,48,66,69,83,91,60,40,36,61}, + {92,48,22,99,15,95,64,43,1,16,94,2,99,19,17,69,11,58,97,56,89,31,77,45,67,96,12,73,8,20,36,47,81,44,50,64,68,85,40,81,85,52,9}, + {91,35,92,45,32,84,62,15,19,64,21,66,6,1,52,80,62,59,12,25,88,28,91,50,40,16,22,99,92,79,87,51,21,77,74,77,7,42,38,42,74,83,2,5}, + {46,19,77,66,24,18,5,32,2,84,31,99,92,58,96,72,91,36,62,99,55,29,53,42,12,37,26,58,89,50,66,19,82,75,12,48,24,87,91,85,2,7,3,76,86}, + {99,98,84,93,7,17,33,61,92,20,66,60,24,66,40,30,67,5,37,29,24,96,3,27,70,62,13,4,45,47,59,88,43,20,66,15,46,92,30,4,71,66,78,70,53,99}, + {67,60,38,6,88,4,17,72,10,99,71,7,42,25,54,5,26,64,91,50,45,71,6,30,67,48,69,82,8,56,80,67,18,46,66,63,1,20,8,80,47,7,91,16,3,79,87}, + {18,54,78,49,80,48,77,40,68,23,60,88,58,80,33,57,11,69,55,53,64,2,94,49,60,92,16,35,81,21,82,96,25,24,96,18,2,5,49,3,50,77,6,32,84,27,18,38}, + {68,1,50,4,3,21,42,94,53,24,89,5,92,26,52,36,68,11,85,1,4,42,2,45,15,6,50,4,53,73,25,74,81,88,98,21,67,84,79,97,99,20,95,4,40,46,2,58,87}, + {94,10,2,78,88,52,21,3,88,60,6,53,49,71,20,91,12,65,7,49,21,22,11,41,58,99,36,16,9,48,17,24,52,36,23,15,72,16,84,56,2,99,43,76,81,71,29,39,49,17}, + {64,39,59,84,86,16,17,66,3,9,43,6,64,18,63,29,68,6,23,7,87,14,26,35,17,12,98,41,53,64,78,18,98,27,28,84,80,67,75,62,10,11,76,90,54,10,5,54,41,39,66}, + {43,83,18,37,32,31,52,29,95,47,8,76,35,11,4,53,35,43,34,10,52,57,12,36,20,39,40,55,78,44,7,31,38,26,8,15,56,88,86,1,52,62,10,24,32,5,60,65,53,28,57,99}, + {3,50,3,52,7,73,49,92,66,80,1,46,8,67,25,36,73,93,7,42,25,53,13,96,76,83,87,90,54,89,78,22,78,91,73,51,69,9,79,94,83,53,9,40,69,62,10,79,49,47,3,81,30}, + {71,54,73,33,51,76,59,54,79,37,56,45,84,17,62,21,98,69,41,95,65,24,39,37,62,3,24,48,54,64,46,82,71,78,33,67,9,16,96,68,52,74,79,68,32,21,13,78,96,60,9,69,20,36}, + {73,26,21,44,46,38,17,83,65,98,7,23,52,46,61,97,33,13,60,31,70,15,36,77,31,58,56,93,75,68,21,36,69,53,90,75,25,82,39,50,65,94,29,30,11,33,11,13,96,2,56,47,7,49,2}, + {76,46,73,30,10,20,60,70,14,56,34,26,37,39,48,24,55,76,84,91,39,86,95,61,50,14,53,93,64,67,37,31,10,84,42,70,48,20,10,72,60,61,84,79,69,65,99,73,89,25,85,48,92,56,97,16}, + {3,14,80,27,22,30,44,27,67,75,79,32,51,54,81,29,65,14,19,4,13,82,4,91,43,40,12,52,29,99,7,76,60,25,1,7,61,71,37,92,40,47,99,66,57,1,43,44,22,40,53,53,9,69,26,81,7}, + {49,80,56,90,93,87,47,13,75,28,87,23,72,79,32,18,27,20,28,10,37,59,21,18,70,4,79,96,3,31,45,71,81,6,14,18,17,5,31,50,92,79,23,47,9,39,47,91,43,54,69,47,42,95,62,46,32,85}, + {37,18,62,85,87,28,64,5,77,51,47,26,30,65,5,70,65,75,59,80,42,52,25,20,44,10,92,17,71,95,52,14,77,13,24,55,11,65,26,91,1,30,63,15,49,48,41,17,67,47,3,68,20,90,98,32,4,40,68}, + {90,51,58,60,6,55,23,68,5,19,76,94,82,36,96,43,38,90,87,28,33,83,5,17,70,83,96,93,6,4,78,47,80,6,23,84,75,23,87,72,99,14,50,98,92,38,90,64,61,58,76,94,36,66,87,80,51,35,61,38}, + {57,95,64,6,53,36,82,51,40,33,47,14,7,98,78,65,39,58,53,6,50,53,4,69,40,68,36,69,75,78,75,60,3,32,39,24,74,47,26,90,13,40,44,71,90,76,51,24,36,50,25,45,70,80,61,80,61,43,90,64,11}, + {18,29,86,56,68,42,79,10,42,44,30,12,96,18,23,18,52,59,2,99,67,46,60,86,43,38,55,17,44,93,42,21,55,14,47,34,55,16,49,24,23,29,96,51,55,10,46,53,27,92,27,46,63,57,30,65,43,27,21,20,24,83}, + {81,72,93,19,69,52,48,1,13,83,92,69,20,48,69,59,20,62,5,42,28,89,90,99,32,72,84,17,8,87,36,3,60,31,36,36,81,26,97,36,48,54,56,56,27,16,91,8,23,11,87,99,33,47,2,14,44,73,70,99,43,35,33}, + {90,56,61,86,56,12,70,59,63,32,1,15,81,47,71,76,95,32,65,80,54,70,34,51,40,45,33,4,64,55,78,68,88,47,31,47,68,87,3,84,23,44,89,72,35,8,31,76,63,26,90,85,96,67,65,91,19,14,17,86,4,71,32,95}, + {37,13,4,22,64,37,37,28,56,62,86,33,7,37,10,44,52,82,52,6,19,52,57,75,90,26,91,24,6,21,14,67,76,30,46,14,35,89,89,41,3,64,56,97,87,63,22,34,3,79,17,45,11,53,25,56,96,61,23,18,63,31,37,37,47}, + {77,23,26,70,72,76,77,4,28,64,71,69,14,85,96,54,95,48,6,62,99,83,86,77,97,75,71,66,30,19,57,90,33,1,60,61,14,12,90,99,32,77,56,41,18,14,87,49,10,14,90,64,18,50,21,74,14,16,88,5,45,73,82,47,74,44}, + {22,97,41,13,34,31,54,61,56,94,3,24,59,27,98,77,4,9,37,40,12,26,87,9,71,70,7,18,64,57,80,21,12,71,83,94,60,39,73,79,73,19,97,32,64,29,41,7,48,84,85,67,12,74,95,20,24,52,41,67,56,61,29,93,35,72,69}, + {72,23,63,66,1,11,7,30,52,56,95,16,65,26,83,90,50,74,60,18,16,48,43,77,37,11,99,98,30,94,91,26,62,73,45,12,87,73,47,27,1,88,66,99,21,41,95,80,2,53,23,32,61,48,32,43,43,83,14,66,95,91,19,81,80,67,25,88}, + {8,62,32,18,92,14,83,71,37,96,11,83,39,99,5,16,23,27,10,67,2,25,44,11,55,31,46,64,41,56,44,74,26,81,51,31,45,85,87,9,81,95,22,28,76,69,46,48,64,87,67,76,27,89,31,11,74,16,62,3,60,94,42,47,9,34,94,93,72}, + {56,18,90,18,42,17,42,32,14,86,6,53,33,95,99,35,29,15,44,20,49,59,25,54,34,59,84,21,23,54,35,90,78,16,93,13,37,88,54,19,86,67,68,55,66,84,65,42,98,37,87,56,33,28,58,38,28,38,66,27,52,21,81,15,8,22,97,32,85,27}, + {91,53,40,28,13,34,91,25,1,63,50,37,22,49,71,58,32,28,30,18,68,94,23,83,63,62,94,76,80,41,90,22,82,52,29,12,18,56,10,8,35,14,37,57,23,65,67,40,72,39,93,39,70,89,40,34,7,46,94,22,20,5,53,64,56,30,5,56,61,88,27}, + {23,95,11,12,37,69,68,24,66,10,87,70,43,50,75,7,62,41,83,58,95,93,89,79,45,39,2,22,5,22,95,43,62,11,68,29,17,40,26,44,25,71,87,16,70,85,19,25,59,94,90,41,41,80,61,70,55,60,84,33,95,76,42,63,15,9,3,40,38,12,3,32}, + {9,84,56,80,61,55,85,97,16,94,82,94,98,57,84,30,84,48,93,90,71,5,95,90,73,17,30,98,40,64,65,89,7,79,9,19,56,36,42,30,23,69,73,72,7,5,27,61,24,31,43,48,71,84,21,28,26,65,65,59,65,74,77,20,10,81,61,84,95,8,52,23,70}, + {47,81,28,9,98,51,67,64,35,51,59,36,92,82,77,65,80,24,72,53,22,7,27,10,21,28,30,22,48,82,80,48,56,20,14,43,18,25,50,95,90,31,77,8,9,48,44,80,90,22,93,45,82,17,13,96,25,26,8,73,34,99,6,49,24,6,83,51,40,14,15,10,25,1}, + {54,25,10,81,30,64,24,74,75,80,36,75,82,60,22,69,72,91,45,67,3,62,79,54,89,74,44,83,64,96,66,73,44,30,74,50,37,5,9,97,70,1,60,46,37,91,39,75,75,18,58,52,72,78,51,81,86,52,8,97,1,46,43,66,98,62,81,18,70,93,73,8,32,46,34}, + {96,80,82,7,59,71,92,53,19,20,88,66,3,26,26,10,24,27,50,82,94,73,63,8,51,33,22,45,19,13,58,33,90,15,22,50,36,13,55,6,35,47,82,52,33,61,36,27,28,46,98,14,73,20,73,32,16,26,80,53,47,66,76,38,94,45,2,1,22,52,47,96,64,58,52,39}, + {88,46,23,39,74,63,81,64,20,90,33,33,76,55,58,26,10,46,42,26,74,74,12,83,32,43,9,2,73,55,86,54,85,34,28,23,29,79,91,62,47,41,82,87,99,22,48,90,20,5,96,75,95,4,43,28,81,39,81,1,28,42,78,25,39,77,90,57,58,98,17,36,73,22,63,74,51}, + {29,39,74,94,95,78,64,24,38,86,63,87,93,6,70,92,22,16,80,64,29,52,20,27,23,50,14,13,87,15,72,96,81,22,8,49,72,30,70,24,79,31,16,64,59,21,89,34,96,91,48,76,43,53,88,1,57,80,23,81,90,79,58,1,80,87,17,99,86,90,72,63,32,69,14,28,88,69}, + {37,17,71,95,56,93,71,35,43,45,4,98,92,94,84,96,11,30,31,27,31,60,92,3,48,5,98,91,86,94,35,90,90,8,48,19,33,28,68,37,59,26,65,96,50,68,22,7,9,49,34,31,77,49,43,6,75,17,81,87,61,79,52,26,27,72,29,50,7,98,86,1,17,10,46,64,24,18,56}, + {51,30,25,94,88,85,79,91,40,33,63,84,49,67,98,92,15,26,75,19,82,5,18,78,65,93,61,48,91,43,59,41,70,51,22,15,92,81,67,91,46,98,11,11,65,31,66,10,98,65,83,21,5,56,5,98,73,67,46,74,69,34,8,30,5,52,7,98,32,95,30,94,65,50,24,63,28,81,99,57}, + {19,23,61,36,9,89,71,98,65,17,30,29,89,26,79,74,94,11,44,48,97,54,81,55,39,66,69,45,28,47,13,86,15,76,74,70,84,32,36,33,79,20,78,14,41,47,89,28,81,5,99,66,81,86,38,26,6,25,13,60,54,55,23,53,27,5,89,25,23,11,13,54,59,54,56,34,16,24,53,44,6}, + {13,40,57,72,21,15,60,8,4,19,11,98,34,45,9,97,86,71,3,15,56,19,15,44,97,31,90,4,87,87,76,8,12,30,24,62,84,28,12,85,82,53,99,52,13,94,6,65,97,86,9,50,94,68,69,74,30,67,87,94,63,7,78,27,80,36,69,41,6,92,32,78,37,82,30,5,18,87,99,72,19,99}, + {44,20,55,77,69,91,27,31,28,81,80,27,2,7,97,23,95,98,12,25,75,29,47,71,7,47,78,39,41,59,27,76,13,15,66,61,68,35,69,86,16,53,67,63,99,85,41,56,8,28,33,40,94,76,90,85,31,70,24,65,84,65,99,82,19,25,54,37,21,46,33,2,52,99,51,33,26,4,87,2,8,18,96}, + {54,42,61,45,91,6,64,79,80,82,32,16,83,63,42,49,19,78,65,97,40,42,14,61,49,34,4,18,25,98,59,30,82,72,26,88,54,36,21,75,3,88,99,53,46,51,55,78,22,94,34,40,68,87,84,25,30,76,25,8,92,84,42,61,40,38,9,99,40,23,29,39,46,55,10,90,35,84,56,70,63,23,91,39}, + {52,92,3,71,89,7,9,37,68,66,58,20,44,92,51,56,13,71,79,99,26,37,2,6,16,67,36,52,58,16,79,73,56,60,59,27,44,77,94,82,20,50,98,33,9,87,94,37,40,83,64,83,58,85,17,76,53,2,83,52,22,27,39,20,48,92,45,21,9,42,24,23,12,37,52,28,50,78,79,20,86,62,73,20,59}, + {54,96,80,15,91,90,99,70,10,9,58,90,93,50,81,99,54,38,36,10,30,11,35,84,16,45,82,18,11,97,36,43,96,79,97,65,40,48,23,19,17,31,64,52,65,65,37,32,65,76,99,79,34,65,79,27,55,33,3,1,33,27,61,28,66,8,4,70,49,46,48,83,1,45,19,96,13,81,14,21,31,79,93,85,50,5}, + {92,92,48,84,59,98,31,53,23,27,15,22,79,95,24,76,5,79,16,93,97,89,38,89,42,83,2,88,94,95,82,21,1,97,48,39,31,78,9,65,50,56,97,61,1,7,65,27,21,23,14,15,80,97,44,78,49,35,33,45,81,74,34,5,31,57,9,38,94,7,69,54,69,32,65,68,46,68,78,90,24,28,49,51,45,86,35}, + {41,63,89,76,87,31,86,9,46,14,87,82,22,29,47,16,13,10,70,72,82,95,48,64,58,43,13,75,42,69,21,12,67,13,64,85,58,23,98,9,37,76,5,22,31,12,66,50,29,99,86,72,45,25,10,28,19,6,90,43,29,31,67,79,46,25,74,14,97,35,76,37,65,46,23,82,6,22,30,76,93,66,94,17,96,13,20,72}, + {63,40,78,8,52,9,90,41,70,28,36,14,46,44,85,96,24,52,58,15,87,37,5,98,99,39,13,61,76,38,44,99,83,74,90,22,53,80,56,98,30,51,63,39,44,30,91,91,4,22,27,73,17,35,53,18,35,45,54,56,27,78,48,13,69,36,44,38,71,25,30,56,15,22,73,43,32,69,59,25,93,83,45,11,34,94,44,39,92}, + {12,36,56,88,13,96,16,12,55,54,11,47,19,78,17,17,68,81,77,51,42,55,99,85,66,27,81,79,93,42,65,61,69,74,14,1,18,56,12,1,58,37,91,22,42,66,83,25,19,4,96,41,25,45,18,69,96,88,36,93,10,12,98,32,44,83,83,4,72,91,4,27,73,7,34,37,71,60,59,31,1,54,54,44,96,93,83,36,4,45}, + {30,18,22,20,42,96,65,79,17,41,55,69,94,81,29,80,91,31,85,25,47,26,43,49,2,99,34,67,99,76,16,14,15,93,8,32,99,44,61,77,67,50,43,55,87,55,53,72,17,46,62,25,50,99,73,5,93,48,17,31,70,80,59,9,44,59,45,13,74,66,58,94,87,73,16,14,85,38,74,99,64,23,79,28,71,42,20,37,82,31,23}, + {51,96,39,65,46,71,56,13,29,68,53,86,45,33,51,49,12,91,21,21,76,85,2,17,98,15,46,12,60,21,88,30,92,83,44,59,42,50,27,88,46,86,94,73,45,54,23,24,14,10,94,21,20,34,23,51,4,83,99,75,90,63,60,16,22,33,83,70,11,32,10,50,29,30,83,46,11,5,31,17,86,42,49,1,44,63,28,60,7,78,95,40}, + {44,61,89,59,4,49,51,27,69,71,46,76,44,4,9,34,56,39,15,6,94,91,75,90,65,27,56,23,74,6,23,33,36,69,14,39,5,34,35,57,33,22,76,46,56,10,61,65,98,9,16,69,4,62,65,18,99,76,49,18,72,66,73,83,82,40,76,31,89,91,27,88,17,35,41,35,32,51,32,67,52,68,74,85,80,57,7,11,62,66,47,22,67}, + {65,37,19,97,26,17,16,24,24,17,50,37,64,82,24,36,32,11,68,34,69,31,32,89,79,93,96,68,49,90,14,23,4,4,67,99,81,74,70,74,36,96,68,9,64,39,88,35,54,89,96,58,66,27,88,97,32,14,6,35,78,20,71,6,85,66,57,2,58,91,72,5,29,56,73,48,86,52,9,93,22,57,79,42,12,1,31,68,17,59,63,76,7,77}, + {73,81,14,13,17,20,11,9,1,83,8,85,91,70,84,63,62,77,37,7,47,1,59,95,39,69,39,21,99,9,87,2,97,16,92,36,74,71,90,66,33,73,73,75,52,91,11,12,26,53,5,26,26,48,61,50,90,65,1,87,42,47,74,35,22,73,24,26,56,70,52,5,48,41,31,18,83,27,21,39,80,85,26,8,44,2,71,7,63,22,5,52,19,8,20}, + {17,25,21,11,72,93,33,49,64,23,53,82,3,13,91,65,85,2,40,5,42,31,77,42,5,36,6,54,4,58,7,76,87,83,25,57,66,12,74,33,85,37,74,32,20,69,3,97,91,68,82,44,19,14,89,28,85,85,80,53,34,87,58,98,88,78,48,65,98,40,11,57,10,67,70,81,60,79,74,72,97,59,79,47,30,20,54,80,89,91,14,5,33,36,79,39}, + {60,85,59,39,60,7,57,76,77,92,6,35,15,72,23,41,45,52,95,18,64,79,86,53,56,31,69,11,91,31,84,50,44,82,22,81,41,40,30,42,30,91,48,94,74,76,64,58,74,25,96,57,14,19,3,99,28,83,15,75,99,1,89,85,79,50,3,95,32,67,44,8,7,41,62,64,29,20,14,76,26,55,48,71,69,66,19,72,44,25,14,1,48,74,12,98,7}, + {64,66,84,24,18,16,27,48,20,14,47,69,30,86,48,40,23,16,61,21,51,50,26,47,35,33,91,28,78,64,43,68,4,79,51,8,19,60,52,95,6,68,46,86,35,97,27,58,4,65,30,58,99,12,12,75,91,39,50,31,42,64,70,4,46,7,98,73,98,93,37,89,77,91,64,71,64,65,66,21,78,62,81,74,42,20,83,70,73,95,78,45,92,27,34,53,71,15}, + {30,11,85,31,34,71,13,48,5,14,44,3,19,67,23,73,19,57,6,90,94,72,57,69,81,62,59,68,88,57,55,69,49,13,7,87,97,80,89,5,71,5,5,26,38,40,16,62,45,99,18,38,98,24,21,26,62,74,69,4,85,57,77,35,58,67,91,79,79,57,86,28,66,34,72,51,76,78,36,95,63,90,8,78,47,63,45,31,22,70,52,48,79,94,15,77,61,67,68}, + {23,33,44,81,80,92,93,75,94,88,23,61,39,76,22,3,28,94,32,6,49,65,41,34,18,23,8,47,62,60,3,63,33,13,80,52,31,54,73,43,70,26,16,69,57,87,83,31,3,93,70,81,47,95,77,44,29,68,39,51,56,59,63,7,25,70,7,77,43,53,64,3,94,42,95,39,18,1,66,21,16,97,20,50,90,16,70,10,95,69,29,6,25,61,41,26,15,59,63,35}, + }; - int max=14; - for (int row=14;row>0;row--) { + int max=99; + for (int row=99;row>0;row--) { for (int col=0;col