Loading...
tiapko avatar tiapko 31 Точки

Задача - Andrey and billiard - 80/100

Здравейте,

 

Решавам тази задача, но не мога да разбера защо ми дава 80/100, пробвах най-странните входове, които се сетих но не успях да си я счупя. Пробвах и с празен вход (това, че винаги принят ред с Total, пак не е проблем).

 

Може ли един поглед: http://pastebin.com/rmhh575K

1.Andrey and billiard

Andrey is the guy who gives us food and drinks at the game bar. He likes to play billiard. Since you are nice guy you want to help him play more of his favorite game. You decide to create a program which will help him to take orders faster and generate billing information.

First you will receive an integer - the amount of entities with prices (separated by "-"). Then you will receive a list of client. For every consumer you will receive what to buy and how much. When you receive a command: "end of clients" you should display information about every client described below. After that say how much total money were spent while Andrey was playing billiard.

Constraints

  • If an entity is added more than once you should override the previous price.
  • If buyer tries to buy an entity that is not existing - you should ignore that line.
  • Buyers should be ordered by name ascending.
  • All floating point digits must be rounded to 2 digits after decimal separator.
  • In the end of every buyer his bill should be summed.
  • Quantity is an integer. Price – floating point.

Examples

Input

Output

Comments

4

Cola-1.25

Sandwich-2.30

Bira-0.01

Bira-2

Toshko-Bira,3

Mira-Sandwich,1

Marto-Kola,2

end of clients

Mira

-- Sandwich - 1

Bill: 2.30

Toshko

-- Bira - 3

Bill: 6.00

Total bill: 8.30

Bira's price is overwritten.

Since there is no entity named "Kola"- we should ignore that line.

 

 

Тагове:
0
Fundamentals Module 15/10/2016 21:48:01
Plamen27 avatar Plamen27 599 Точки
Best Answer

Ти писа, че "пробвах най-странните входове, които се сетих но не успях да си я счупя"

В предната тема бях дал вход, който ако го изпечаташ правилно би трябвало да получиш 100 от 100:

4
Cola-1.25
Sandwich-2.30
Bira-0.01
Bira-2
Toshko-Bira,3
Mira-Sandwich,1
Mira-Cola,2
Mira-Bira,2
Toshko-Bira,3
Marto-Kola,2
end of clients

Трябва да върне:

Mira
-- Sandwich - 1
-- Cola - 2
-- Bira - 2
Bill: 8.80
Toshko
-- Bira - 6
Bill: 12.00
Total bill: 20.80

Виж какво връща при теб:

Mira
-- Sandwich - 1
-- Cola - 2
-- Bira - 2
Bill: 8.80

Mira
-- Cola - 2
-- Bira - 2
Bill: 6.50
Mira
-- Bira - 2
Bill: 4.00

Toshko
-- Bira - 6
Bill: 12.00

Total bill: 31.30

Програмата ти връща доста излишни работи и основния проблем е крайната сума.

Погледнато набързо според мен трябва да  пренапишеш логиката си, най-вероятно предните тестове ги вземаш защото са по-прости.

2
tiapko avatar tiapko 31 Точки

Много Ви Благодаря!

Бях забравил на един ред да сетна едина булева променлива. Основното объркване при мен идваше от това, как бях разбрал, че трябва да изглежда изходът, и как всъщност трябва да изглежда, но без Ваша помощ това щеше да ми е най-малкия проблем :)

1
iliyamar avatar iliyamar 13 Точки

Здравейте,

При мен, теста който използвате дава верен резултат, но въпреки това Judge ми дава едва 60/100.
Дали ще можете да погледнете и да дадете някаква идея къде греша? 
http://pastebin.com/bHKTHqPs

0
Plamen27 avatar Plamen27 599 Точки

Здравей,

Съвета ми към теб е cъщия като на колегата - да пренапишеш задачата гледайки предните решения, където логиката е по-проста, няма нужда от много усложняване. Погледни видеото на Кирил от упражненията и фиксовете.

Ето ти нов тест, който показва грешките ти.

5
Cola-1.25
Sandwich-2.30
Bira-0.01
Bira-2
Bira-1
Toshko-Sudjuk,4
Toshko-Bira,3
Mira-Sandwich,1
Mira-Cola,2
Mira-Bira,2
Toshko-Bira,3
Marto-Kola,2
Dinko-Cola,3
Dinko-Sola,5
Tishko-Sopola,4
Muncho-Kola,3
Dinko-Bira,2
Mira-Cola,1
Tishko-Sandwich,2
end of clients

Ето какво трябва да върне:

Dinko
-- Cola - 3
-- Bira - 2
Bill: 5.75
Mira
-- Sandwich - 1
-- Cola - 3
-- Bira - 2
Bill: 8.05
Tishko
-- Sandwich - 2
Bill: 4.60
Toshko
-- Bira - 6
Bill: 6.00
Total bill: 24.40

Виж какво връща при теб:

Dinko
-- Cola - 3

-- Sola - 5
-- Bira - 2
Bill: 5.75
Mira
-- Sandwich - 1
-- Cola - 3
-- Bira - 2

Bill: 8.05
Tishko

-- Sopola - 4
-- Sandwich - 2
Bill: 4.60
Toshko

-- Sudjuk - 4
-- Bira - 6
Bill: 6.00
Total bill: 24.40

Програмата ти смята точно, но когато съществуващ клиент поръчва несъществуваща стока, ти го печаташ и така програмата ти гърми. Това е проблема.

0
iliyamar avatar iliyamar 13 Точки

Благодаря ти много, Пламене!
Както за отделеното време, така и за старателните обяснения и най-вече фиксирания проблем в кода ми! Страхотно е, когато се срещат толкова отзивчиви колеги! Все още не мога да гласувам с +1 за жалост, но го имаш!

1
Plamen27 avatar Plamen27 599 Точки

Е нищо, важното е, че накрая си реши проблема.

Всичко е добре, когато свършва добре.

Пък и благодарение на теб "изобретих", последната версия на несчупваемия тест за тази задача :))))

Предния както се видя има малък пропуск.

0
19/10/2016 12:01:56
DeyanPeychev avatar DeyanPeychev 21 Точки

Аз също имам проблем с тази задача, боксувам на 80/100, а двата теста, които @Plamen27 е предложил си минават успешно. Ето кодът(който може и леко да нахейтите за това, че не съм ползвал нито един клас, но все пак исках да пробвам по-различно решение
laugh): http://pastebin.com/W8aneV0U

0
10/02/2017 23:49:56
Plamen27 avatar Plamen27 599 Точки

Ето 3 подобрен Release на несчупваемия тест:

7
Cola-1.25
Sandwich-2.30
Bira-0.01
Bira-2
Bira-1
Sok-0
Boza-7.37
Toshko-Sudjuk,4
Toshko-Bira,3
Mira-Sandwich,1
Mira-Cola,2
Mira-Bira,2
Toshko-Bira,3
Marto-Kola,2
Dinko-Cola,3
Dinko-Sola,5
Tishko-Sopola,4
Muncho-Kola,3
Dinko-Bira,2
Mira-Cola,1
Tishko-Sandwich,2
Gencho-Sok,3
Gancho-Boza,0
end of clients

 

Gencho като поръчва сок и вместо 0 твоята програма връща многозначително NaN.

1
DeyanPeychev avatar DeyanPeychev 21 Точки

Оправих го това, но пак стои на 80/100.. sad Гърми ми 2-рия тест в джъджа 

0
11/02/2017 01:28:07
Plamen27 avatar Plamen27 599 Точки

А как си го оправил, дай код да видим.

0
DeyanPeychev avatar DeyanPeychev 21 Точки

http://pastebin.com/6nmZiYPP

0
Plamen27 avatar Plamen27 599 Точки

Бих предположил, че някъде в този израз ти е грешката. Ти реално не пазиш броя на поръчките, а ги изчисляваш

незнайно защо. Като огледах други решения софтуни няма тест да хваща нулите, тоест това оправяне не решава техните тестове.

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

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