Untitled
user_2119273
plain_text
2 years ago
892 B
29
Indexable
public class Solution { public int solve(ArrayList<Integer> A) { int n = A.size(); Collections.sort(A); int modulo = 1000000007; long power = n-1; long base = 2; long minpower = 1; long maxPower = 1; // Fast power while(power > 0) { if(power % 2 != 0) { maxPower = (maxPower * base) % modulo; } base = (base * base) % modulo ; power = power / 2; } // 306568771 long ans = 0; for(int i = 0 ; i < n ; i++) { long sub = (minpower - maxPower + modulo) % modulo ; long curr_ans = (A.get(i) * sub) % modulo; ans = (ans + curr_ans) % modulo; minpower = (minpower * 2) % modulo; maxPower = maxPower / 2; } return (int)ans % modulo; } }
Editor is loading...