196352025-12-17 15:32:04birozsLádapakolás raktárban (50)python3Wrong answer 6/50287ms14828 KiB
N,M = map(int,input().split())
T = list(map(int,input().split()))
T = [0] + T[:]
ToronySzam = 0
i = 2
#Növekvőből csökkenő
while i < N:
    if T[i-1] < T[i] > T[i+1]:
        bal = i
        while bal - 1 > 0 and T[bal] > T[bal-1]:
            bal -= 1
        jobb = i
        while jobb + 1 <= N and T[jobb] > T[jobb+1]:
            jobb += 1
        Csucs = i
        i = jobb + 1
        ToronySzam += 1
        Meret = T[Csucs]
        Felso = T[Csucs]
        T[Csucs] = 0
        Lehet = True
        b = Csucs-1
        j = Csucs+1
        while (b >= bal or j <= jobb) and Lehet:
            Par = [0,0]
            if b >= bal:
                Par[0] = T[b]
            if j <= jobb:
                Par[1] = T[j]
            if Par[0] < Felso and Par[0] > Par[1] and Par[0] + Meret <= M:
                Meret += T[b]
                Felso = T[b]
                T[b] = 0
                b -= 1
            elif Par[1] < Felso and Par[0] < Par[1] and Par[1] + Meret <= M:
                Meret += T[j]
                Felso = T[j]
                T[j] = 0
                j += 1
            else:
                Lehet = False
    else:
        i += 1
#print(T)
#Csökkenő
for i in range(1,N):
    if T[i-1]*T[i] != 0 and T[i] < T[i-1]:
        ToronySzam += 1
        Meret = T[i-1]
        Felso = T[i-1]
        T[i-1] = 0
        jobb = i
        while jobb <= N and Meret + T[jobb] <= M and T[jobb] < Felso:
            Meret += T[jobb]
            Felso = T[jobb]
            T[jobb] = 0
            jobb += 1
#print(T)

#Növekvő
for i in range(1,N):
    if T[i-1]*T[i] != 0 and T[i] > T[i-1]:
        ToronySzam += 1
        Meret = T[i-1]
        Felso = T[i-1]
        T[i-1] = 0
        jobb = i
        while jobb <= N and Meret + T[jobb] <= M and T[jobb] > Felso:
            Meret += T[jobb]
            Felso = T[jobb]
            T[jobb] = 0
            jobb += 1
#print(T)


ToronySzam += (N - T.count(0) + 1)
print(N-ToronySzam)

        



     



SubtaskSumTestVerdictTimeMemory
base6/50
1Accepted0/017ms3124 KiB
2Wrong answer0/041ms4296 KiB
3Accepted2/217ms3332 KiB
4Wrong answer0/217ms3124 KiB
5Accepted2/217ms3256 KiB
6Wrong answer0/217ms3212 KiB
7Accepted2/217ms3264 KiB
8Wrong answer0/217ms3124 KiB
9Wrong answer0/317ms3264 KiB
10Wrong answer0/217ms3348 KiB
11Wrong answer0/217ms3372 KiB
12Wrong answer0/225ms3632 KiB
13Wrong answer0/330ms3844 KiB
14Wrong answer0/339ms4068 KiB
15Wrong answer0/343ms4508 KiB
16Time limit exceeded0/2287ms14328 KiB
17Time limit exceeded0/3284ms14828 KiB
18Time limit exceeded0/3284ms14172 KiB
19Wrong answer0/3179ms12804 KiB
20Time limit exceeded0/3230ms14020 KiB
21Time limit exceeded0/3219ms12856 KiB
22Time limit exceeded0/3252ms14336 KiB