Loading...
Vincent avatar Vincent 11 Точки

02. The Lift - получавам 70 точки

Здравейте,

Ще се радвам ако мога да получа малко помощ за задачата 02. The Lift (https://judge.softuni.org/Contests/Practice/Index/2517#1). Получавама 70 точки и не мога да разбера какво бъркам.

Накратко правя променливи - free_spaces, in_wagon, с if разделям на празни и вагони в които има хора, след това с if  разделям ако чакат да се качат повече от 4 души.

people = int(input())
array_wagons = [int(i) for i in input().split()]
wagon_list = []
in_the_train = 0

MAX_PEOPLE = 4
flag = False

for wagon in array_wagons:
    free_spaces = MAX_PEOPLE - wagon
    in_wagon = MAX_PEOPLE-free_spaces

    if wagon == 0: # Free Wagon
        if people >= 4:
            wagon_list.append(free_spaces)
            people -= free_spaces
        else:
            wagon_list.append(people)
            people -= people

    elif wagon != 0:
        if people + in_wagon >= 4:
            wagon_list.append(in_wagon + free_spaces)
            people -= 4 - in_wagon

        else:
            wagon_list.append(people)
            people -= 4 - in_wagon

wagon_list = ' '.join(map(str, wagon_list))

if people > 0:
    print(f"There isn't enough space! {people} people in a queue!")
    print(wagon_list)
else:
    print(f"The lift has empty spots!")
    print(wagon_list)
Тагове:
0
Fundamentals Module
valerielashvili avatar valerielashvili 34 Точки

Едно леко резлично решение:

queue = int(input())
lift = [int(x) for x in input().split()]
output = ''

while queue != 0:
    if all(x == 4 for x in lift):
        print(f"There isn't enough space! {queue} people in a queue!\n" +
              " ".join(str(w) for w in lift))
        break

    for i in range(len(lift)):
        diff = 4 - lift[i]

        if queue >= diff:
            lift[i] += diff
            queue -= diff
        elif queue < diff:
            lift[i] += queue
            queue -= queue
else:
    if any(x < 4 for x in lift):
        print('The lift has empty spots!\n' +
              ' '.join(str(w) for w in lift))

    elif all(x == 4 for x in lift):
        print(' '.join(str(w) for w in lift))

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.