Skip to content

Commit 67010de

Browse files
authored
[Dana] Add rotatefun program (#44)
Add rotatefun program together with its input and result files
1 parent 3d1596f commit 67010de

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

dana/programs/rotatefun.dana

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# LeetCode problem: 396. Rotate Function (https://leetcode.com/problems/rotate-function/description/)
2+
def main
3+
4+
def maxRotateFunction is int: n as int, nums as int []
5+
6+
var sum prevF maxF i is int
7+
sum := 0
8+
prevF := 0
9+
maxF := 0
10+
i := 0
11+
12+
loop:
13+
if i < n:
14+
sum := sum + nums[i]
15+
prevF := prevF + i * nums[i]
16+
i := i + 1
17+
else: break
18+
19+
maxF := prevF
20+
i := 1
21+
22+
loop:
23+
if i < n:
24+
var F is int
25+
F := prevF + sum - n * nums[n-i]
26+
if F > maxF: maxF := F
27+
prevF := F
28+
i := i + 1
29+
else: break
30+
31+
return: maxF
32+
33+
var n is int
34+
n := readInteger()
35+
36+
var nums is int [n]
37+
38+
var i is int
39+
i := 0
40+
loop:
41+
if i < n:
42+
nums[i] := readInteger()
43+
i := i + 1
44+
else: break
45+
46+
var result is int
47+
result := maxRotateFunction(n, nums)
48+
49+
writeInteger: result
50+
writeString: "\n"

dana/programs/rotatefun.input

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
4
2+
4 3 2 6

dana/programs/rotatefun.result

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
26

0 commit comments

Comments
 (0)