-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathA1_Max sum.java
50 lines (42 loc) · 1.79 KB
/
A1_Max sum.java
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
// Mr.Sharvanand is playing with array of integers, his task is to find largest sum. The sum is calculated by adding individual products( multiplying each element of array with its position) and every time rotate nums in clockwise direction, like this find n different sums if there are n elements in an array, finally return the largest of these sums. Help sharvanand to find largest sum.
// you are given an integer array nums of length n.
// Assume arrk to be an array obtained by rotating nums by k positions clock-wise. We define the rotation function F on nums as follow:
// F(k) = 0 * arrk[0] + 1 * arrk[1] + ... + (n - 1) * arrk[n - 1].
// Return the maximum value of F(0), F(1), ..., F(n-1).
// The test cases are generated so that the answer fits in a 32-bit integer.
// Example 1:
// Input: 4
// 4 3 2 6
// Output: 26
// Explanation:
// F(0) = (0 * 4) + (1 * 3) + (2 * 2) + (3 * 6) = 0 + 3 + 4 + 18 = 25
// F(1) = (0 * 6) + (1 * 4) + (2 * 3) + (3 * 2) = 0 + 4 + 6 + 6 = 16
// F(2) = (0 * 2) + (1 * 6) + (2 * 4) + (3 * 3) = 0 + 6 + 8 + 9 = 23
// F(3) = (0 * 3) + (1 * 2) + (2 * 6) + (3 * 4) = 0 + 2 + 12 + 12 = 26
// So the maximum value of F(0), F(1), F(2), F(3) is F(3) = 26.
// Example 2:
// Input: 1
// 100
// Output: 0
import java.util.*;
class j{
public static void main (String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
List<Integer> l=new ArrayList<>();
for(int i=0;i<n;i++){
l.add(sc.nextInt());
}
l.addAll(l);
int ans=Integer.MIN_VALUE;
for(int i=0;i<n;i++){
int sum=0,ind=0;
for(int j=i;j<i+n;j++){
sum+=l.get(j)*ind;
ind++;
}
ans=Math.max(ans,sum);
}
System.out.println(ans);
}
}