Loading...
evlogihr avatar evlogihr 1 Точки

Bulls and Cows solution

Здравейте на всички,

Днес успях да се сетя какъв беше проблема със задачата Bulls and Cows, която не можахме да добутаме вчера до 100/100. Ето решението тук. Добавих просто още един булев масив в който си означавам, по аналогичен начин на другия, кои цифри от числото num са вече преброени като крава или бик и всичко си тръгна :)

Успех на всички на изпита и дано пак се видим след няколко седмици на C# основи 2.

Тагове:
0
Programming Basics
Dekameron avatar Dekameron 481 Точки

Макар, че има тема с всичките решения вътре, бих искал да споделя, че на условието на задачата пише

• Allowed memory: 4 MB.

Което е доста странно, тъй като съм сигурен, че никой не може да напише толкова кратък код, който да се побира в 4МВ решение и все пак да получи 100/100. Повечето решения се движат около 10МВ. Твоето, моето и още няколко души решенията съм ги преглеждал и проверявал в BGCoder.com.

 

И друго, което е странно за мен, в задачата пише:

• The numbers b and c will be in the range [0…9].

Интересно ми е как примерно ще има 6 бика и 7 крави дадено 4-цифрено число? Изобщо защо стойностите им не са дефинирани както би трябвало да е [0...4] ? Видях в тестовете, които бяха в zip файла, че наистина има тестове с по 5 бика.. Някой може ли да обясни защо е така?

4
HPetrov avatar HPetrov 822 Точки

Първо за паметта изобщо няма смисъл да е гледаш. Това сигурно е от стария bgcoder но едно нормално решение по какъвто и да е начин е не повече от 9-10MB. Като отидеш сега в bgcoder ще ти каже в повечето случай по-високи граници за задачите от тези дадени по условие.

За броя на биковете и кравите нарочно са дадени такива тестове за да ни е гадно ;) Все пак няма значение колко се търсят. Ако числото, с което "гадаеш" има толкова бикове/крави колкото се търсят -> принтираш, ако ли не -> "No" и така... :)

1
evlogihr avatar evlogihr 1 Точки

Най-вероятно е объркано условието. Няма логика първата задача, където има просто едни if-else да ти се дават 16 Mb а на тази да за само 4. Както казах и на подготовките, за този изпит не би тябвало да имате случаи в които да ударите времето или Allowed memory, освен ако някъде не направите безкраен цикъл разбира се.

1
dentia avatar dentia 362 Точки

Не е точно очевидно вярно :) Проблемът ти идва от следните 3 реда:

Console.WriteLine("Write the secret number: ");
Console.WriteLine("Write the bulls to search ");
Console.WriteLine("Write the cows to search ");

 

Изтрий ги и може да ти даде точки :)

 

 

Едит:

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

1
externo avatar externo 119 Точки
дори да е така, би трябвало да има инструкции като как да се форматира кода, че да бъде признат за верен
0
RoYaL avatar RoYaL Trainer 6849 Точки

Не е вьпрос на това как да се форматира кода, а как да се форматира аутпута. Хората са дали примерен аутпут, какво повече е нужно :)

0
RoYaL avatar RoYaL Trainer 6849 Точки

В крайна сметка аутпута е много по-важен :) Когато шефа/клиента ти ти каже, че иска страница на която пише "6", а ти изпишеш "Шест", независимо колко елегантен начин си използвал за писане на алгоритъма (което си е важно), то не си направил това което ти е заръчано, съответно работата не е свършена.

 

Принципно с тази житейска истина не съм съгласен, но доста често може да ти се наложи да се срещаш с 'клиенти', които ти казват "Не ти плащам за да мислиш, а за да вършиш това което съм ти казал", което означава че всякакви фенси решения от сорта на "абе, мислех че така ще е по-готино" са неприемливи

0
v.bonapartov avatar v.bonapartov 18 Точки

Здравейте,

Ще използвам тази тема, за да не отварям друга.

Интересува ме втория пример, който е даден за тази задача в учебника https://csharp-book.softuni.bg/chapter-09-problems-for-champions-part-2.html грешен ли е?

Посочено е тайно число 2241 и предполагаемо число 9924.

Това не са ли две крави, а не както са посочени 3?

 

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