Loading...

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

Poddy avatar Poddy 17 Точки

Exam 06-07 July 2019, задаче 4 Renovation

Здравейте,

Решавам задачата и така : https://pastebin.com/Ra1pzPeM и така : https://pastebin.com/NWvDHUeF и резултата е между 50 и 75 точки. В PyCharm минава и с дебъгер също. Явно има нещо, което пропускам. Някой може ли да помогне?

 

Реших проблема, но реално погледнато не мога да разбера какво точно не е наред.
Ако пресметна площа за боядисване така:

area = math.ceil(height_wall * width_wall * 4 * ( 1- percentage_not_painting / 100))

не минава и дава грешни отговори на два теста и съответно 75 точки.
Ако обаче пресметна площа като я разбия на няколко компонента решението минава:

walls = height_wall * width_wall * 4
no_paint_area = walls * percentage_not_painting / 100
area = math.ceil(walls - no_paint_area)

Някой има ли идея защо се получава това? Реално погледната сметките са едни и същи просто в единия случай го събирам на един ред.

Тагове:
0
Programming Basics with Python 06/05/2020 16:30:06
Dimitar_Dimitrov93 avatar Dimitar_Dimitrov93 2 Точки

Здравейте,

Не мисля, че грешките Ви в Judge се получават от неправилни резултати от сметките, които сте посочили. Все пак, ако имате някакви съмнения, е добре да приоритизирате изчисленията със скоби. Например:

walls = height_wall * width_wall * 4
==> walls = (height_wall * width_wall) * 4
no_paint_area = walls * percentage_not_painting / 100
==> no_paint_area = (walls * percentage_not_painting) / 100

Условието на задачата е програмата да следи дали е дошла команда "Tired!" или всички стени са били боядисани. С While цикъла следим за въпросната команда, но трябва да проверяваме и дали стените са боядисани. Аз също достигах само до 75 точки без да виждам реална причина за проблем.

След малко дебъгване и лутане, установих, че ако след като всички стени са били боядисани, в конзолата получим входни данни за още литри боя, тя няма да бъде добавена към крайния остатък, който се отпечатва. Съмнението ми се потвърди, когато прочетох следния пост във форума:

https://softuni.bg/forum/28031/renovation-izpitna-zadacha

Например, ако на конзолата получим 4-ри реда с литри боя, а още на 3-тия ред имаме достатъчно количество боя, за да боядисаме стените, последният входен ред(4-ти) няма да бъде прочетен. Съответно тези литри боя няма да бъдат сметнати в общия остатък. След като коригирах този проблем с едно експериментално за мен решение с if проверка и break, получих 100/100 в Judge.

        if (totalAreaCovered >= totalAreaToCover) {
            paintQuantityInLiters = Number(input.shift());
            if (paintQuantityInLiters > 0) {
                totalAreaCovered += paintQuantityInLiters;
            }
            break;
        }

Прилагам своето решение, въпреки, че е за JavaScript.

https://pastebin.com/7DsbP6Ws

Може да прегледате и другите постове за тази задача във форума:

https://softuni.bg/search/results?SearchTerm=Renovation&Questions=true

Надявам се да съм бил полезен до някаква степен. Успех ;)

1
09/05/2020 22:38:44
l.markov avatar l.markov 1 Точки

Здравейте,

Дали може съдействие за откриване на грешката

https://pastebin.com/Kki6BZj0

Получавам 87/100 точки в judge. Гледах примерните решения и за другите езици, но нещо така и не успявам да хвана къде какво точно изпускам.

0
kaleanna avatar kaleanna -11 Точки

that's good information, the article provides a lot of useful information, but I still can't find the answer. 

 word finder

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