Здравейте,
тъй като решението ми гърми с TLE го пуснах на друга версия на Джава, но се появиха последните 3 - 4 теста с IR. Има ли вариант някой да погледне решението ми и да сподели мнение?
Здравейте,
тъй като решението ми гърми с TLE го пуснах на друга версия на Джава, но се появиха последните 3 - 4 теста с IR. Има ли вариант някой да погледне решението ми и да сподели мнение?
Здравейте, имам решение, което е на крачка от вярното. Удобно ли е да го публикувам тук?
Здравей,
Няма проблем да публикуваш решението си - добре е да използваш инструмент като https://pastebin.com/ за целта.
Стелян
Колега доста се мъчих с тази задача но изгледах една лекция от бройни системи … и ми се видя дори Лесна(снощи ми мина 100 от 100) съветвам те да направиш същото.
Иначе като насоки мога да ти кажа : 1. със 2 фор цикъла си напълни числата по каспичанската бройна система в лист ( от 0 до 255 ) , 2. и след това с един Уайл цикъл и модулно и цялочислено делене на 256 (тъй като бройната система е 256 - тична ) Вярвам че ще се справиш ! Успех , дано съм бил полезен
Колега а ако смяташ , че логиката ти е напълно вярна пробвай да четеш с ulong ( за с#) тъй като щом ти давам IR най вероятно е ексепшън заради число от инпута което не се събита в твоята променлива.
А на някой хрумва ли му по-успешен начин да чете като с ulong за C#, само че под Java 1.8, защото опитах със String -
String type = in.next("\d{1,21}");
Long input = Long.parseUnsignedLong(type);
но нещо не се получава под Java 8 - точно тогава дава грешката описана по-горе - TLE?
Същият код на Java 9 минава, но с java.lang.IndexOutOfBoundsException на 21 и 22ра проверка.
Не ми хрумна нищо за Java 8 с ulong, което да минава…
Двата ми кода са тези (следвал съм логиката от лекциите за C#):
https://pastebin.com/YH8nLreA
и
https://pastebin.com/TuFwLt6h
Мерси предварително!
Това ми беше решението, но работи само до границата на Integer. По-късно ще опитам да го завъртя с Double понеже и long е къс
long е къс да защото рейнджа му е -9223372036854775808 до 9223372036854775807 … ,а по задача рейнджа ти е 0 до 18446744073709551615 … което са точно границите на Ulong… затова съм ти написал Ulong а не long . Иначе като Жокер на 18446744073709551615 - това число програмата трябва да ти изкара резултат : iViViViViViViViV , това локално ако ти мине , ще мине и в джъдж
Описаните от мен по-горе две решения минават локално на Java (IntelliJ) и дават именно резултата iViViViViViViViV. Но като се качи в Judge - дават въпросната грешка (дори и на Java 9) - java.lang.IndexOutOfBoundsException.
Затова съм качил въпроса.
На C# същото без cast-ване от ulong - работи без проблем.
Въпросът е с Java как да мине тази граница.
Здравей.
Може би, това ще ти свърши работа https://www.geeksforgeeks.org/biginteger-class-in-java/
Успех.
Привет,
java.lang.IndexOutOfBoundsException се хвърля когато искаш да достъпиш индекс, който е извън рамките на масива ти. В случая няма общо с типа данни, а със самата ти логика. Това което ти препоръчвам е да се опиташ да дебъгнеш програмата и да видиш къде се разминават очакванията ти с релно какво се случва.
Поздрави,
Стелян.
Здравейте,
Понеже по-горе така и не видях решение на проблема с TLE при Java, моля за съдействие как да оптимизирам кода, понеже и моят гърми TLE [>0.100s, 27.95 MB]
Благодаря.
Здравей Митко,
Може ли да пробваш заместо стринг да използваш StringBuilder?
Според мен така ще забързаш доста програмата, понеже при всяка result+ операция създаваш нов стринг.
Поздрави,
Мишо
Може да използваш ulong заместо BigInt.
Също така да знаеш, че трябва да направиш Exception за 0
Привет,
Благодаря за бързите отговори. Пробвах StringBuilder, но отново ми е TLE, а относно ulong, може и да греша, но не виждам такъв тип данни в java и inteliJ IDEA.
Здравейте,
Има ли някакви други идеи за тази задача?
Моето решение също не минава заради TLE [>0,100s, 28,3 MB].
Изглежда трябва да ползваме BigInteger и Array/ArrayLists, но така решенията стават твърде тежки, за да се вместят в условието (поне за Java).
Изпрати го на Java9
Здравей Пешо,
може да опиташ отново да събмитнеш решенито си
Благодаря! Всичко е наред сега.