Loading...
Elena123456 avatar Elena123456 235 Точки

3. Legendary Farming - грешно зададен expected otput в Judge

Здравейте колеги, искам да Ви информира, че тази задача няма съответствие спрямо условието й и спрямо това, което Judge очаква, като output. Трябваше да изгубя няколко часа за да пробвам няколко решения, докато Judge не показа expected outputs.

Zero test #1

input:

3 Motes 5 stones 5 Shards
6 leathers 255 fragments 7 Shards

output в Judge (Order by quantity (value) in descending order, then by name (key) in descending order) https://judge.softuni.org/Contests/Compete/Index/1737#4  :

Valanyr obtained!
shards: 5
fragments: 5
motes: 3
stones: 5
leathers: 6

 

а по условие е (Order by quantity (value) in descending order, then by name (key) in ascending order; print collected junk items in alphabetical order. ) и  това пише в .docx файла :

Valanyr obtained!

fragments: 5

shards: 5

motes: 3

leathers: 6

stones: 5

 

Zero test #2:

input: 123 silver 6 shards 8 shards 5 motes
9 fangs 75 motes 103 MOTES 8 Shards
86 Motes 7 stones 19 silver

output в Judge:

Dragonwrath obtained!
shards: 22
fragments: 0
motes: 19
silver: 123
fangs: 9

 

а по условие:

Dragonwrath obtained!

shards: 22

motes: 19

fragments: 0

fangs: 9

silver: 123

 

И въпреки това искам да попитам дали използването на sys.exit() е най-удачния вариант в този случай?

https://pastebin.com/rva2raEz

Тагове:
2
Python Fundamentals 28/01/2022 00:22:04
MartinBG avatar MartinBG 4803 Точки
Best Answer

Използването на sys.exit() или еквивалентните му в други езици за терминиране на програмата рядко е добра идея, защото се нарушава четимостта на кода.

В случая това може да се избегне с един break и промяна на while цикъла.

 

Конкретно за задачата, условието наистина е много сбъркано и няма нищо общо с това, което очаква Judge, а именно - извеждане на резултатите без сортировка.

 

Това е коригираното съобразно очакванията на Judge решение.

1
Elena123456 avatar Elena123456 235 Точки

@ MartinBG ,

благодаря отново (вече сигурно за стократен път smiley ).

Коригираното Ви решение изглежда доста по-четимо и прегледно от моето.

И разбрах вече - без никакъв sys.exit(), а с break и просто коригиран while(). Но все пак реших да си запазя накрая сортировката с вметка, че за Judge не е нужна, защото именно тази задача ми беше ключова за да разбера какъв е синтаксиса на сортирането в Python.

Поздрави и хубав уикенд!

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