From a2df96948a7009f02acb56da6b8ecf217d2c5cef Mon Sep 17 00:00:00 2001 From: Nikolas Spyropoulos Date: Sat, 15 Feb 2025 17:35:01 +0200 Subject: [PATCH 1/2] Added rotatefun dana program --- dana/programs/rotatefun.dana | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 dana/programs/rotatefun.dana diff --git a/dana/programs/rotatefun.dana b/dana/programs/rotatefun.dana new file mode 100644 index 0000000..459045d --- /dev/null +++ b/dana/programs/rotatefun.dana @@ -0,0 +1,50 @@ +# LeetCode problem: 396. Rotate Function (https://leetcode.com/problems/rotate-function/description/) +def main + + def maxRotateFunction is int: n as int, nums as int [] + + var sum prevF maxF i is int + sum := 0 + prevF := 0 + maxF := 0 + i := 0 + + loop: + if i < n: + sum := sum + nums[i] + prevF := prevF + i * nums[i] + i := i + 1 + else: break + + maxF := prevF + i := 1 + + loop: + if i < n: + var F is int + F := prevF + sum - n * nums[n-i] + if F > maxF: maxF := F + prevF := F + i := i + 1 + else: break + + return: maxF + + var n is int + n := readInteger() + + var nums is int [n] + + var i is int + i := 0 + loop: + if i < n: + nums[i] := readInteger() + i := i + 1 + else: break + + var result is int + result := maxRotateFunction(n, nums) + + writeInteger: result + writeString: "\n" From d1193a4df06de81a2c02e0bdf93251fa65315950 Mon Sep 17 00:00:00 2001 From: Nikolas Spyropoulos Date: Tue, 18 Feb 2025 18:23:37 +0200 Subject: [PATCH 2/2] Added rotatefun input and result files --- dana/programs/rotatefun.input | 2 ++ dana/programs/rotatefun.result | 1 + 2 files changed, 3 insertions(+) create mode 100644 dana/programs/rotatefun.input create mode 100644 dana/programs/rotatefun.result diff --git a/dana/programs/rotatefun.input b/dana/programs/rotatefun.input new file mode 100644 index 0000000..e8ef31b --- /dev/null +++ b/dana/programs/rotatefun.input @@ -0,0 +1,2 @@ +4 +4 3 2 6 diff --git a/dana/programs/rotatefun.result b/dana/programs/rotatefun.result new file mode 100644 index 0000000..6f4247a --- /dev/null +++ b/dana/programs/rotatefun.result @@ -0,0 +1 @@ +26