C#Advanced Exam 19.06.2016 - Problem1. Cubic Artillery
Здравейте,
Три часа си троших главата на първа задача и до никъде не я докарах. Някой може ли да покаже работещо решение, макар и да не е за максимален брой точки?
Благодаря предварително !
Здравейте,
Три часа си троших главата на първа задача и до никъде не я докарах. Някой може ли да покаже работещо решение, макар и да не е за максимален брой точки?
Благодаря предварително !
Ето работещо решение, макар и само за 60 т. http://pastebin.com/wcFxZuqE . Гърми за време, защото сумирането е с ликю. Явно има и грешка в логиката, но в момента немога да я засека. Предполагам, че до 2 дни ще изкарат авторското решение и най-вече тестовете, за да си видим грешките :)
Здравей,
EDIT: Ето работещо решение. Пак не е много качествен кода, но за момента не се сещам за друго. Оставил съм и някои коментари. Дано помогнат за ориентация: http://pastebin.com/tj4sHU57
Тая задача я гледах буквално 3 часа, накрая написах решение, което да покаже верни нулеви тестове и реши да ми даде 80 точки :Д. BTW още не съм сигурен какво точно се изисква в тази задача :(.
Предупреждавам, че не е най - прекрасно подредения и написан код, а може би и не е най - елегантното решение (няма кво може би, направо не е :Д) - http://pastebin.com/zRqWCC35
Грешката ми е, че не си пазя сумата на бункерите и като извикам .Sum() ми забавя доста програмата при голям брой оръжия (поне така си мисля)
Тук на второто съм се опитал да я оправя, като добавя 2ро Dict, което държи за ключ бункер, а за валю - сумата на оръжията в него. Чакам да отворят джъджа и да тествам - http://pastebin.com/jjZAbWrN
С един дифчекър може да сравниш 2те решения - https://www.diffchecker.com/
Чакаме авторкото решение или това на някой колега, да видим как се решава по - просто тази задача.
Поздрави!
Здравейте,
Ето и моето решение за 80т. Последните 2 теста ми гърмят за памет като съм използвал Queue.
Ще съм много благодарен, ако някой даде решение за 100т. или ме ориентира как да се смъкне паметта... щях да се побъркам по едно време :D.
Поздрави
На всеки token (елемент от входа на данни) ти инициализираш инстанция на Regex ... Последния ти тест има 75000 елемента, което са 75000 token-а за теб, което са 75000 Regex инстанции...
Здравей,
Много благодаря за помощта, не бих и предположил че може да е това.
Ето решението ми след поправката, което дава 100т. Надявам се да бъде от помощ на който го интересува.
Поздрави
Умрях от яд... Какво ли не гледах, но за Regex-a не се сетих... Дали ще се навиете да направите един семинар за възможните грешки, които ти изяждат ресурсите (конкретно паметта)?
От край време се мисли за нещо като подготовка за изпит, разлиюна от обикновените - как се решават задачите, как да си разпределяме времето, какво представляват тестовете, възможни уловки, и т.н. Засега обаче не разполагаме с нужното време и ресурс за да направим нещо от този тип. Може и да не е сега, но определено ще има една такава "мини-лекция" в близкото бъдеще. :)
http://pastebin.com/GSbHJayF пробвах я пак наново ама отново 20/100 някой малко хелп?
От изпита по C# имам 100/100, но нямам решение за Java. Понеже гледам,че друг не помага, ето няколко неща които забелязах в твоето решение и според мен не са правилни.
Основната грешка, която забелязах е, че си приел поради някаква причина, че оръжията са общи за всички бункери. При това положение всички бункери са равностойни, като логиката по проверката за препълването става излишна за всички след първият.
Въпрос: Защо си мислиш, че не може да има оръжие с капацитет 0, че изкарваш бункер при капацитет равен на лимита? Hint: В Constraints имаш: "The weapons will always be valid integers in the range [0, 500]."
Въпрос: Къде пазиш оръжията на бункерите, така, че когато даден бункер остане единствен и няма място да почнеш да вадиш предишни оръжия? Всеки бункер трябва да има собствен запас от оръжия.
Въпроси: Защо при повече от 1 бункер почваш да вадиш оръжия при достигнат лимит? Hint:"If there are no other bunkers besides the current one, ... If the weapon can be contained, you must make enough free capacity to hold that weapon, if there isn’t already."
Въпрос: Защо вадиш бункери само когато капацитетът им е равен на лимита.? Hint: Бункер се вади когато не може да поеме оръжие и не е единствен, тука капацитетът е без значение. "When a bunker overflows (it cannot contain a given weapon due to lack of enough free capacity)".
Въпрос: Защо при 1 останал бункер, вадиш бункера? Hint: "If there are no other bunkers, you must NOT remove the one that overflowed."
Ако искаш виж решението на C#:http://pastebin.com/ngRaJTZZ
Някой може ли да ми обясни защо при втория zero case не принтира бункер 'а', въпреки че е празен? Много благодаря!
Input |
Output |
50 b 10 15 20 30 c 100 a 65 Bunker Revision |
b -> 20, 30 c -> Empty |
За момента съм до никъде със задачата защото условието е меко казано объркващо и липсват достатъчно обяснени примери.
По твоя въпрос предполагам, че не се принтира защото е единствения останал бункер
"If there are no other bunkers besides the current one,".. "If a bunker overflows you must remove it".. "If there are no other bunkers, you must NOT remove the one that overflowed."
Да, но бункер 'а' е празен, както и 'с', тъй като макс. капацитет е 50...
Условието е супер неясно. Ползвах това решение (https://pastebin.com/wyJhVZNd) на колегата и дебъгвах стъпка по стъпка, за да видя с кой момент принтира на конзoлата "Empty"