• + 0 comments

    Python Solution

    #!/bin/python3
    
    import math
    import os
    import random
    import re
    import sys
    
    #
    # Complete the 'fairCut' function below.
    #
    # The function is expected to return an INTEGER.
    # The function accepts following parameters:
    #  1. INTEGER k
    #  2. INTEGER_ARRAY arr
    #
    
    def fairCut(k, arr):
        # Write your code here
        n = len(arr)
        if n - k < k:
            k = n - k
        arr.sort()
        is_even_n = n % 2 == 0
        is_even_k = k % 2 == 0
        indices = []
        if (is_even_n and is_even_k) or (not is_even_n and is_even_k):
            x = (n + 1) // 2
            for i in range(k // 2):
                indices.append(x - (2 * i + 1))
                indices.append(x + (2 * i + 1))
        elif (is_even_n and not is_even_k) or (not is_even_n and not is_even_k):
            x = (n + 1) // 2
            indices = [x]
            for i in range(k // 2):
                indices.append(x - (2 * (i + 1)))
                indices.append(x + (2 * (i + 1)))
    
        s1 = []
        s2 = []
        for i in range(n):
            if i + 1 in indices:
                s1.append(arr[i])
            else:
                s2.append(arr[i])
        total_sum = 0
        for i in s1:
            for j in s2:
                total_sum += abs(i - j)
        return total_sum
    
    
    if __name__ == '__main__':
        fptr = open(os.environ['OUTPUT_PATH'], 'w')
    
        first_multiple_input = input().rstrip().split()
    
        n = int(first_multiple_input[0])
    
        k = int(first_multiple_input[1])
    
        arr = list(map(int, input().rstrip().split()))
    
        result = fairCut(k, arr)
    
        fptr.write(str(result) + '\n')
    
        fptr.close()