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)
Благодаря за отговора!
Добавих логиката, която споменаваш и за съжалание от 70 качих на 80 точки и пак нещо не е както трябва. Разбирам, че кода ми не е перфектен но ми се искаше да мога да избутам задачата сам и от там да надграждам в по-опростено решение.
Това е актуалния код, с 80 точки, ако някои забележи какво още се чупи ще се радвам да каже.
Щом искате сам да се справиите със задачата, ето входни данни, с които решението не работи коректно:
Правилният отговор е:
Благодаря, за съдействието, но нещо пак не излиза. Оправих този вход който бяхте посочили, но продължавам да получавам 80/100. Вашия код изглежда много добре, но оператора |= не мога да му разбера съвсем действието.
Това е актуалната версия на моя код след поправката по входа, който ми дадохте.
Python |= In-Place OR Operator
Ето входни данни, с които решението не работи коректно:
Правилният отговор е:
Благодаря ви, справих се! Задачата е сложна, но се научават много неща от нея. Разбрах защото се ползва enumerate, в моето решение ползам отделна променлива за индекса на масива, но вбъдеще ще ползвам enumarate.
Това е финалната работеща версия:
Поздравления!
Сега се опитайте да опростите решението.
Например този ред е практически невъзможен за "дешифриране":
А това, което трява да се направи е просто: