Loading...
kalinamomkova avatar kalinamomkova 26 Точки

Ето работещо решение, макар и само за 60 т. http://pastebin.com/wcFxZuqE . Гърми за време, защото сумирането е с ликю. Явно има и грешка в логиката, но в момента немога да я засека. Предполагам, че до 2 дни ще изкарат авторското решение и най-вече тестовете, за да си видим грешките :)

1
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

EDIT: Ето работещо решение. Пак не е много качествен кода, но за момента не се сещам за друго. Оставил съм и някои коментари. Дано помогнат за ориентация: http://pastebin.com/tj4sHU57

Тая задача я гледах буквално 3 часа, накрая написах решение, което да покаже верни нулеви тестове и реши да ми даде 80 точки :Д. BTW още не съм сигурен какво точно се изисква в тази задача :(.

Предупреждавам, че не е най - прекрасно подредения и написан код, а може би и не е най - елегантното решение (няма кво може би, направо не е :Д) - http://pastebin.com/zRqWCC35

Грешката ми е, че не си пазя сумата на бункерите и като извикам .Sum() ми забавя доста програмата при голям брой оръжия (поне така си мисля)

Тук на второто съм се опитал да я оправя, като добавя 2ро Dict, което държи за ключ бункер, а за валю - сумата на оръжията в него. Чакам да отворят джъджа и да тествам - http://pastebin.com/jjZAbWrN

С един дифчекър може да сравниш 2те решения - https://www.diffchecker.com/

 

Чакаме авторкото решение или това на някой колега, да видим как се решава по - просто тази задача.

 

Поздрави!

2
20/06/2016 12:43:54
Aleksandar.Tanev avatar Aleksandar.Tanev 6 Точки

Здравейте,

Ето и моето решение за 80т. Последните 2 теста ми гърмят за памет като съм използвал Queue.

http://pastebin.com/RTaneTWk

Ще съм много благодарен, ако някой даде решение за 100т. или ме ориентира как да се смъкне паметта... щях да се побъркам по едно време :D.

Поздрави

 

2
20/06/2016 10:03:25
Sanity avatar Sanity Trainer 194 Точки

На всеки token (елемент от входа на данни) ти инициализираш инстанция на Regex ... Последния ти тест има 75000 елемента, което са 75000 token-а за теб, което са 75000 Regex инстанции...

3
Aleksandar.Tanev avatar Aleksandar.Tanev 6 Точки

Здравей,

 

Много благодаря за помощта, не бих и предположил че може да е това.

 

Ето решението ми след поправката, което дава 100т. Надявам се да бъде от помощ на който го интересува.

http://pastebin.com/wyJhVZNd

 

Поздрави

2
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Умрях от яд... Какво ли не гледах, но за Regex-a не се сетих... Дали ще се навиете да направите един семинар за възможните грешки, които ти изяждат ресурсите (конкретно паметта)?

1
Sanity avatar Sanity Trainer 194 Точки

От край време се мисли за нещо като подготовка за изпит, разлиюна от обикновените - как се решават задачите, как да си разпределяме времето, какво представляват тестовете, възможни уловки, и т.н. Засега обаче не разполагаме с нужното време и ресурс за да направим нещо от този тип. Може и да не е сега, но определено ще има една такава "мини-лекция" в близкото бъдеще. :)

2
stambi4a avatar stambi4a 126 Точки

От изпита по 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

0
sotirona avatar sotirona 25 Точки

Някой може ли да ми обясни защо при втория zero case не принтира бункер 'а', въпреки че е празен? Много благодаря!

Input

Output

50

b 10 15 20 30

c 100

a 65

Bunker Revision

b -> 20, 30

c -> Empty

0
mrfreeman avatar mrfreeman 11 Точки

За момента съм до никъде със задачата защото условието е меко казано объркващо и липсват достатъчно обяснени примери.

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

"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."

0
sotirona avatar sotirona 25 Точки

Да, но бункер 'а' е празен, както и 'с', тъй като макс. капацитет е 50...

1
mrfreeman avatar mrfreeman 11 Точки

Условието е супер неясно. Ползвах това решение (https://pastebin.com/wyJhVZNd) на колегата и дебъгвах стъпка по стъпка, за да видя с кой момент принтира на конзoлата "Empty"

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