Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation

  • Split the array with a minimum sum

    Given n integers and an integer k, you are asked to split the array into k contiguous parts so that the maximum subarray sum is as small as possible.

    Input

    The first line of the input contains two integers n (1 ≤ n ≤ ) and k (1 ≤ k ≤ n).
    The next line contains space-separated integers ().

    Output

    The program should print the maximum subarray sum that is as small as possible.

    Examples

    Input
    Output
    5 2 1 2 3 6 2
    8
    5 3 1 2 10 3 2
    10

    Explanation

    1. [1 2 3] [6 2] ⇒ maximum subarray sum is 6 + 2 = 8
    1. [1 2] [10] [3 2] ⇒ maximum subarray sum is 10
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue