Решение на задачите от C++ Fundamentals - Exam 15 July
Жоро, може ли решенията на задачите от изпита?
Благодаря предварително!
Жоро, може ли решенията на задачите от изпита?
Благодаря предварително!
Колеги, поствам своите (дописани следобеда) , моля който иска, да сподели също. Чакам с нетърпение правилните !!
Кога ще се отвори Judge от изпита за тестване на решенията?
Поздрави!
Здравей,
Да, добавих ги днес в страницата на курса и отворих състезанието за упражнение.
Поздрави,
Жоро
Благодаря! Много полезно. Ще ни направиш съвършени :-)
Има някакви детайли, които ми убягват на 3-та задача Code:
ето това решение, което логически следва твоето, но технически има разлики (не е изведено във функция въвеждането на данните), защо реже половината точки за time limit? Явно има важни неща, които ми убягват.
Здравей!
Решението ти е вярно, но не е оптимизирано. За всяко търсено число въртиш един цикъл около векторите и втори (абстракцията "find" вътрешно си върти цикъл за да намери елемента) което прави сложността на задачата O(n2). Ако използваш unordered_set търсенето в него отнема константно време (О(1)), тогава ще имаш отново един цикъл около векторите (O(N)), но след това търсенето в set сложността ще е O(1) и общо ще ги намираш за линейно време (О(N)).
За да разнообразим начините за решаване в тази дискусия ще постна и моето решение, като съм подходил по различен начин. За всяка част, още при четенето й я добавям в сет, при първото добавяне на елемента го броя в map (понеже ни интересува дали го има в частта, а не колкот пъти. След това, при сепаратор зачиствам сета и продължавам с следващата част.
https://pastebin.com/LBxmbh19
Здравей,
положих малко усилия да разбера кода ти, много хитроумно!! Тази част особено ми хареса:
while (messageStream >> msgWord) {
if (separators.count(msgWord)) {
part.clear();
} else {
if (!part.count(msgWord)) {
occurences[msgWord]++;
}
part.insert(msgWord);
}
}
предполагам дава 100т.?
Пренаписах решението с твоята логика, даде 100т.!
Но, остава мистерията на другата код-реализация :-)
Жоро, моля за помощ, наистина има някакъв проблем с трета задача - Code, няколко пъти я преработвах, и все ми реже 50 т. за бързина, в последния вариант, на всички части следвах твоето решение, и пак същото. Постнах с последни сили и твоето за да видя какво се случва, и на него даде 50т.?