Feel the Agile Force – Introduction to Agile
Loading...
+ Нов въпрос
Yordanka_Nikolova avatar Yordanka_Nikolova 1 Точки

Задача Load Suitcases - Python

Здравейте,

На задача Load Suitcases в Judge с този код получавам 80/100. Показва, че са  две грешките от тип - Runtime error и Icorrect answer. 

Моля за кратко обяснение къде е объркано.

Благодаря.

https://pastebin.com/DwAvhBLd

Тагове:
0
svephoto avatar svephoto 650 Точки

Здравей, Yordanka_Nikolova,

 

Ще те помоля да дадеш и условието на задачата - такава е практиката, когато питаме нещо за даден проблем: условие + код. laugh

0
Yordanka_Nikolova avatar Yordanka_Nikolova 1 Точки

Здравей,

 

Извинявам се, че забравих да дам условието. Благодаря за информацията и съвета.

 

 

1
Axiomatik avatar Axiomatik 1189 Точки

Forum links (just type "Suitcases" in search bar) =>

-https://softuni.bg/forum/31267/programming-basics-online-exam-28-and-29-march-2020-05-suitcases-load

-https://softuni.bg/forum/30991/suitcases-load

-https://softuni.bg/forum/35031/05-suitcases-load-programming-basics-online-exam-28-and-29-march-2020

 

Instructions => https://softuni.bg/downloads/svn/programming-basics/Resources/EXAMS-2020/Exam-Version-Two/05.%20Suitcases%20load.docx

1. Изпит по "Основи на програмирането" - 28 и 29 март 2020

Задача 5. Товарене на багажи
Напишете програма, която ви помага при товаренето на куфари в багажника на самолет. Всеки самолет има определен капацитет на багажника. До получаване на команда "End" ще получавате обем на куфар. Обемът на всеки трети куфар трябва да се увеличава с 10%, поради загубата на пространство при начина на подреждане. Ако свободното пространството в даден момент е по-малко от обема на куфар товаренето трябва да прекъсне.
Вход
Първоначално се чете един ред:
Капацитетът на багажника – реално число в диапазона [100.0…6000.0]
След това до получаване на команда "End" или до запълване на багажника, се чете по един ред:
Обем на куфар – реално число в диапазона [100.0…6000.0]
Изход
На конзолата да се отпечатат следните редове според случая:
При получаване на командата "End" се печата:
"Congratulations! All suitcases are loaded!"
Ако обемът на куфара е по-голям от оставащото пространство в багажника:
"No more space!"
Накрая винаги се отпечатва статистика – колко багажа са натоварени:
"Statistic: {брой натоварени багажи} suitcases loaded."

 

550
100
252
72
End

Congratulations! All suitcases are loaded!
Statistic: 3 suitcases loaded.

;-)

0
svephoto avatar svephoto 650 Точки

@Yordanka_Nikolova, проверката трябва да бъде за всеки 3-ти куфар, а не само за 3-тия. Можеш да сложиш, например, такъв израз на ред 14

if (counter + 1) % 3 == 0:

и да видиш какво ще се получи.

1
01/05/2021 16:10:42
Yordanka_Nikolova avatar Yordanka_Nikolova 1 Точки

Благодаря за улсовието.

0
Kevin441 avatar Kevin441 -1 Точки

You need to think about your algorithm.
You are creating bins based on 100, so construct them and then deconstruct to get your expected output. Using [-1] as the index means always add to the last bin in bins: 

A = [15,20,25,45,20,30,65] 
bins = [[]]
for i in reversed(A):
    if sum(bins[-1]) + i > 100:
        bins.append([])
    bins[-1].append(i)

>>> bins
[[65, 30], [20, 45, 25], [20, 15]]

So you just need to reverse and flatten the bins and this can be done a number of ways:FaceTime PC

>>> [a for b in reversed(bins) for a in b] 
[20, 15, 20, 45, 25, 65, 30]
# Or
>>> sum(reversed(bins), []) 
[20, 15, 20, 45, 25, 65, 30]
# Or
>>> import itertools as it
>>> list(it.chain.from_iterable(reversed(bins)))
[20, 15, 20, 45, 25, 65, 30]
-2