Robot Picking Boxes: Robots are used to automate the process of picking up mobile phone boxes and relocating them within a warehouse. The boxes are stacked and arranged adjacently. All the stacks may not have equal number of boxes. The robot can collect and pickup boxes either vertically (boxes in a single stack) or horizontally (across multiple stacks). But when picking up boxes horizontally, the robot can pick up only the boxes in continous stacks in a single attempt.

Given the number of stacks N and the count of boxes in each stack, the program must print the minimum number of attempts M required to pick (collect) and relocate all the boxes.

Input Format:
The first line contains N.
The second line contains the number of boxes B(1), B(2), … B(N) in the N stacks separated by a space.

Output Format:
The first line contains M (which is the minimum number of attempts)

Boundary Conditions:
2 <= N <= 100
1 <= B(i) <= 50

Example Input/Output 1:
Input:
6
5 4 4 3 4 4

Output:
6
Explanation: The boxes are stacked as given below where each asterisk is a box.
*
*** **
******
******
******
As the robot can pick only continuous boxes in a single attempt, at least 6 attempts are required.

Example Input/Output 2:
Input:
10
5 5 5 5 4 5 5 5 5 5

Output:
6

Example Input/Output 3:
Input:
10
29 5 5 5 4 5 5 5 5 18

Output:
8

def findCount(a,si,ei):
    rc=0
    if ei-si==0:
        rc+=1
        return rc
    m=999999
    for i in range(si,ei+1):
        if a[i]<m:
            m=a[i]
    rc+=m
    for i in range(si,ei+1):
        a[i]-=m
    sti,eti=-1,-1
    for i in range(si,ei+1):
        if a[i]>0 and sti==-1:
            sti=i
        if a[i]==0 and sti!=-1 and eti==-1:
            eti=i-1
            rc+=findCount(a,sti,eti)
            sti,eti=-1,-1
    if sti!=-1 and eti==-1:
        eti=ei
        rc+=findCount(a,sti,eti)
    return min(rc,ei-si+1)
n=int(input())
a=list(map(int,input().strip().split()))

print (min(n,findCount(a,0,n-1)))
Claps!
6

You may also like

7 Comments

  1. For me it is getting error.Is this code work in python3

    1. We have updated the code now. Please try again.

      1. Reload this page again bro. Actually, the code is in Python 2xx version. We changed the code to Python 3xx.

        1. Sorry bro
          I got it

          1. Yeah No problem Bro 🙌🙌

      2. Thank you so much
        Are u doing all programs in skillrack
        Can I ask u codes which ever I get error could u solve it for me

        1. We will try to solve bro 🤞🤞

Leave a reply

Your email address will not be published. Required fields are marked *

More in:Python