[Judge] C# Basics - Nine Digit Magic Numbers и други магии в Judge системата
Здравейте колеги,
Предполагам, че вече някои са започнали да се готвят за изпита по C# основи, който иде на 22 Август. И аз така. Днес за първи път имах досег с Judge системата, опитвайки се да проверя решенията, които измъдрих за първия вариант от темите за подготовка (тази, която започва с Joro – The Football Player.) Първа задача добре, втора добре, трета – и тя сработи. Стигнах до магическите числа – Nine Digit Magic Numbers (зад. 4) и Bit Inverter (зад. 5). И тук започнаха моите проблеми.
Проблем 1. В задача 4 е даден пример за output, при зададени първоначално сума от 27 и разлика 46.
Според условието output-a би следвало да бъде следните три числа:
125171217
131177223
221267313
Моят алгоритъм обаче намира много повече решения от тези 3. (Под решения имам предвид числа, които отговарят на зададените рестрикции в условието). Само за пример ще дам следните три числа (при зададени същите параметри за сума = 27 и разлика = 46):
125171217 (125 < 171 < 217 ; 1 + 2 +5 + 1 + 7 + 1 + 2 + 1 + 7 = 27; 171 – 125 = 46; 217 – 171 = 46)
164210253
215261307
…
При моя алгоритъм, обаче, получвам още 17 други решения, които удовлетворяват условието на задачата преди да стигна до последното решение, което е дадено в примера (а именно – 221267313). И програмата продължава да “бълва“ още... :)
Виждам, че много колеги са изкарали максимален брой точки на тази задача, при мен обаче дава лимит време (0.451 при разрешени 0.30), тъй като просто обхождам голям масив.
Питанката ми е – това грешка в условието ли е или грешката е в моя телевизор? :) Ако наистина, грешката е моя, връщам се пак към кода да търся грешки и/или начини как да го оптимизирам...
Проблем 2. Задача 5 – Bit Inverter. Тук мистерията става още по-дълбока. :) Отново по някакъв си мой начин/алгоритъм (не претендирам за красив код :)), но успявам да получа искания output по зададен вход. Примерно:
Input:
2 – брой числа
11 – стъпка
45 – число #1
87 – число #2
Output:
173 - ново число #1
71 - ново число #2
Другият пример даден в условието също сработи. Judge системата, обаче, казва 13/100 (сиреч само 2 теста са успешни – zero тестовете също минават). Останалите тестове са или Runtime Error или Incorrect Answer. Тук започнах да чародействам – сменях вида на променливите – int-ове, byte-ове и т.н, правих заклинания, пих една студена вода – навън заваля дъжд, но Judgе-a не помръдна и с един тест напред...
Та, втората ми питанка е – възможно ли е да получвам правилен output, но тъй като Judge системата има собствен “начин на мислене” и очаква конкретен алгоритъм, да дава проблем и да смята задачата за нерешена ако не намери този алгоритъм при “събмитване“ на решението?
Ако някой от колегите, които имат повече опит с Judgе системата (или някой от SoftUni Team), могат да хвърлят малко светлина, ще бъда много благодарен... :)
Мерси предварително!
Поздрави,
К
П.С. Ако е необходимо, кодът който съм използвал за двете задачи също веднага мога да го пост-на... :)