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
      • 19
        BFS

  • Wine production

    You are responsible for the logistics of a wine production factory. There are n containers and every day one container is filled with wine. For each container, you know the number of days it should be kept closed before opening. You’d like to minimize the time it will take to open all the containers.

    Input

    The first line of the input contains a single integer n (1 ≤ n ≤ ).
    The next line contains n space-separated integers (1 ≤ ) the number of days each of the containers need to be kept closed before opening.

    Output

    The program should print the least amount of time you need to wait until all the containers can be opened.

    Examples

    Input
    Output
    4 2 3 4 3
    6
    6 39 19 38 39 22 35
    41

    Explanation

    • Example 1 (enumerated numbers represent the day numbers):
        1. Fill the container that needs to be kept closed for 4 days
        1. Fill the container that needs to be kept closed for 3 days
        1. Fill the container that needs to be kept closed for 3 days
        1. Fill the container that needs to be kept closed for 2 days
        1. Open the containers filled during Day 1 and Day 2
        1. Open the containers filled during Day 3 and Day 4 ⇒ all are open
     

    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