Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1,41 @@
|
|||
with Ada.Text_Io; use Ada.Text_Io;
|
||||
|
||||
procedure Max_Sum is
|
||||
|
||||
Triangle : array (Positive range <>) of integer :=
|
||||
(55,
|
||||
94, 48,
|
||||
95, 30, 96,
|
||||
77, 71, 26, 67,
|
||||
97, 13, 76, 38, 45,
|
||||
07, 36, 79, 16, 37, 68,
|
||||
48, 07, 09, 18, 70, 26, 06,
|
||||
18, 72, 79, 46, 59, 79, 29, 90,
|
||||
20, 76, 87, 11, 32, 07, 07, 49, 18,
|
||||
27, 83, 58, 35, 71, 11, 25, 57, 29, 85,
|
||||
14, 64, 36, 96, 27, 11, 58, 56, 92, 18, 55,
|
||||
02, 90, 03, 60, 48, 49, 41, 46, 33, 36, 47, 23,
|
||||
92, 50, 48, 02, 36, 59, 42, 79, 72, 20, 82, 77, 42,
|
||||
56, 78, 38, 80, 39, 75, 02, 71, 66, 66, 01, 03, 55, 72,
|
||||
44, 25, 67, 84, 71, 67, 11, 61, 40, 57, 58, 89, 40, 56, 36,
|
||||
85, 32, 25, 85, 57, 48, 84, 35, 47, 62, 17, 01, 01, 99, 89, 52,
|
||||
06, 71, 28, 75, 94, 48, 37, 10, 23, 51, 06, 48, 53, 18, 74, 98, 15,
|
||||
27, 02, 92, 23, 08, 71, 76, 84, 15, 52, 92, 63, 81, 10, 44, 10, 69, 93);
|
||||
|
||||
Last : Integer := Triangle'Length;
|
||||
Tn : Integer := 1;
|
||||
|
||||
begin
|
||||
while (Tn * (Tn + 1) / 2) < Last loop
|
||||
Tn := Tn + 1;
|
||||
end loop;
|
||||
for N in reverse 2 .. Tn loop
|
||||
for I in 2 .. N loop
|
||||
Triangle (Last - N) := Triangle (Last - N) +
|
||||
Integer'Max(Triangle (Last - 1), Triangle (Last));
|
||||
Last := Last - 1;
|
||||
end loop;
|
||||
Last := Last - 1;
|
||||
end loop;
|
||||
Put_Line(Integer'Image(Triangle(1)));
|
||||
end Max_Sum;
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
local lines <const> = {
|
||||
" 55",
|
||||
" 94 48",
|
||||
" 95 30 96",
|
||||
" 77 71 26 67",
|
||||
" 97 13 76 38 45",
|
||||
" 07 36 79 16 37 68",
|
||||
" 48 07 09 18 70 26 06",
|
||||
" 18 72 79 46 59 79 29 90",
|
||||
" 20 76 87 11 32 07 07 49 18",
|
||||
" 27 83 58 35 71 11 25 57 29 85",
|
||||
" 14 64 36 96 27 11 58 56 92 18 55",
|
||||
" 02 90 03 60 48 49 41 46 33 36 47 23",
|
||||
" 92 50 48 02 36 59 42 79 72 20 82 77 42",
|
||||
" 56 78 38 80 39 75 02 71 66 66 01 03 55 72",
|
||||
" 44 25 67 84 71 67 11 61 40 57 58 89 40 56 36",
|
||||
" 85 32 25 85 57 48 84 35 47 62 17 01 01 99 89 52",
|
||||
" 06 71 28 75 94 48 37 10 23 51 06 48 53 18 74 98 15",
|
||||
"27 02 92 23 08 71 76 84 15 52 92 63 81 10 44 10 69 93"
|
||||
}
|
||||
|
||||
local f = lines:back():split(" ")
|
||||
local d = f:map(|s| -> tonumber(s))
|
||||
for row = #lines - 1, 1, -1 do
|
||||
local l = d[1]
|
||||
local i = 1
|
||||
for lines[row]:lstrip():split(" ") as s do
|
||||
local u = tonumber(s)
|
||||
local r = d[i + 1]
|
||||
d[i] = (l > r) ? u + l : u + r
|
||||
l = r
|
||||
i += 1
|
||||
end
|
||||
end
|
||||
print(d[1])
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
'Solution derived from http://stackoverflow.com/questions/8002252/euler-project-18-approach.
|
||||
|
||||
Set objfso = CreateObject("Scripting.FileSystemObject")
|
||||
Set objinfile = objfso.OpenTextFile(objfso.GetParentFolderName(WScript.ScriptFullName) &_
|
||||
"\triangle.txt",1,False)
|
||||
|
||||
row = Split(objinfile.ReadAll,vbCrLf)
|
||||
|
||||
For i = UBound(row) To 0 Step -1
|
||||
row(i) = Split(row(i)," ")
|
||||
If i < UBound(row) Then
|
||||
For j = 0 To UBound(row(i))
|
||||
If (row(i)(j) + row(i+1)(j)) > (row(i)(j) + row(i+1)(j+1)) Then
|
||||
row(i)(j) = CInt(row(i)(j)) + CInt(row(i+1)(j))
|
||||
Else
|
||||
row(i)(j) = CInt(row(i)(j)) + CInt(row(i+1)(j+1))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
|
||||
WScript.Echo row(0)(0)
|
||||
|
||||
objinfile.Close
|
||||
Set objfso = Nothing
|
||||
Loading…
Add table
Add a link
Reference in a new issue