Какви поуки си взехте след първия изпит?


12
Леле не е истина. Поспах си и днес погледнах задачите с бистър ум и идеята да си оправя грешките. Аз съм вариант 2.1 (6 December 2013 Evening) и имах 260 точки.
 
Ето как протече изпита за мен и какви са ми поуките:
 
Докато се свържа с bgcoder да видя условията на задачите -> Минаха си 20-30 минути.
 
После като решавах първа задача ("2-4-8") и избирах променлива - викам uint трябва да стигне. Ако ми вади грешки в bgcoder -> ще сменя на ulong. Пробвам да си пусна решението - сайта долу. Викам направо да почвам да решавам втората ("Nightmare on Code Street").
 
Докато решавах втора, успях да се свържа с кодера и си качих първата -> гледам 70/100. Що ли, си викам? Бе де да знам - в момента решавам друга. После ще я гледам. Може би даже след като реша и четвърта, че много хора я решават успешно по принцип - що да губя време за 30 точки да търся exceptions щом може 100 -> ПРИОРИТЕТИ.
 
Като реших втората, гледам че пишат в условието "текст с цифри", текст-мекст. Викам си - сигурно ще бутнат няк'ви грозни знаци между другото. Чакай да я кача пък после ще му мисля за проверки. Само ако не е 100/100. Пробвах submit -> кодера пак долу :< Време е за 4-та с лодките("Kaspichania Boats"). Може пък втората да хваща 100 точки без добавки?
 
Докато решавах четвърта, успях да се свържа с кодера и си качих втората -> гледам 70/100 (Абе тука нещо се повтаря случката). Къде ли ми е грешката? Няк'ва проверка май трябваше да направя? Остави, с'я в момента съм се развихрил с четвърта, скоро я свършвам. После ще ги гледам тия със 70 точки.
 
Направих четвърта и качвам - ей най-после не е 70, а 100 точки. Сега какво да правя? Тези първите две не са на сто, ча'й да им хвърля едно око -> нищо не се сещам на пръв поглед. Дали да хвърля второ око? Абе що не погледна малко и другите 2 задачи, вместо да си губя времето за 60 точки? Виж как добре ми се получи с 4-та. Пък и има ~3 часа още. Все ще се намери време за полурешени задачи.
 
Та гледам аз 3-та("Enigmanation"). О-о-о трябва калкулатор да правя. Много parse-ване на знаци и цифри, много нещо. Не, че е невъзможна. Просто тая бая време ще отнеме. Къде ми е bit-аджийската задача? Там ми е силата. Гледам 5-та -> ето я. Абе и тая не е много къса, ама поне съм сигурен, че ще я реша. Bit алгоритъма веднага ми се появи в съзнанието и не ми трябваше много време да реша коя от двете задачи да почна.
 
Петата ("Game of Page") ми отне повече време от предвиденото. Нещо условието ми се видя много неясно :< Разни въпроси, разни отговори, повтарящи се ситуации. Трудно се разбират тез' жени. Изведнъж си излетя времето. Дали да не си търся грешките в 1-ва и 2-ра? Ма'ни! Толкова съм близо да свърша с петата… Тестовете обаче отнемаха прекалено много време заради обемния input, въпреки че ползвах и автоматизиран input от текстов файл (piping от конзолата), така пък debugging-а беше тегав. Толкова знам с'я. Няма време да търся по-ефективни методи. Дай направо ДА НАМАЛЯ ВРЕМЕННО input-a на 3 реда вместо 16 и ДА ПРОБВАМ РЪЧНО. Там е работата, че ЗАБРАВИХ за тази "МАЛКА ПРОМЯНА" и после се чудя и се мая що за странни резултати получавам като ВКАРВАМ ВСИЧКИ 16 РЕДА! (Абе тоя абзац нещо взе да звучи другояче; да не си помислите нещо само)
 
В крайна сметка времето свърши и имах 10 минути да предавам. Направо предадох каквото бях направил -> 20/100. Ужас! Ник'во време за тестове. Няк'ви отчаяни опити направих и предадох в последната секунда. Така и си останах с 260 точки файнъл ризалтс(РЕЗИЛтс?). 20 спечелени точки за 3 часа работа. Можеби ако имах само още малко време…
 
Сега, като погледнах задачите отново, грешките ми бяха повече от ясни. Вижте шибания diff между решенията, които предадох и тези които сега барнах. Това е разликата между 260 точки и 400! Най-много ме заболя за пета задача… Diff-a ми се усмихва даже. Ще го убия!
 
Каква ми е поуката? Хубаво правех, че решавах повече задачи, вместо да вися и да си търся грешката на една задача. И без т'ва имах проблем със стабилността на нета и там задължително щях да изгубя още много време - не разчитайте да има интернет. Това което правех не както трябва - не си водех бележки докато решавам задачата. Разни хрумвания, разни тестови промени и т.н., не си ги отбелязвах, а с течение на времето лесно се забравят (особено ако не си спал скоро и прескачаш от задача в задача). Така се самопрецаках много, а нищо нямаше да ми коства поне да поставя някой друг коментар в сорса.
 
 Друго нещо -> трябва да се подготвя за по-лесни и бързи тестове next time. Дори autohotkey щеше да свърши повече полезна работа, по 5-та задача, от това с което разполагах. А дали не е казано в някоя лекция как да тестваме правилно? Явно съм пропуснал. Може би има опция във Visual Studio, като изберем конкретен проект>цъкнем RMB>Properties(Alt+Enter)>Debug>Start Options> Command line arguments" да въведем "< path\to\the\TestInputFile.txt" и да ползваме pipe-ing с debug support? Може и да има. Не съм се запознавал с нея преди изпита.
 
А, и друго  нещо - да не ви пука много много за memory limit-a на първия изпит. Карайте на сигурно.
 
Вие какви поуки си взехте след първия изпит? Къде ви беше слабото място? Подготовката, организацията, нещо друго? Смятам, че ще е полезно за хората след нас, явяващи се за пръв път. Пък и за нас.

 




Отговори



1
Еми моята поука е да не правя copy-paste на части от условието на задачата в word файла, защото това ми изяде около 1 час. Над 45 минути се опитвам да си намеря грешката в enigmanation, дебъгвам, слагам други стойности, предварително зададени изрази, а не с Console.ReadLine() за да е по-бързо дебъгването, и тук ми беше грешката, тъй като се оказва, че при проверката кой знак е, аз съм проверявал за char с номер 8122, което стояло за дълго тире, а минуса на клавиатурата ми е char с номер 45 минути. Ако не беше това, да си бях направил поне 2/3 от останалите точки. А така изкарах 340.

от MarVel (93 точки)


0
"copy-paste на части от условието на задачата в word файла, защото това ми изяде около 1 час" - това означава ли, че бавно и трудно се изтеглят условията на задачите от бг кодера? Те всъщност в бг кодера ли са, или се задават някъде а svn-a на академията?

от ellapt (6303 точки)

0
Не, 1 час ми отне докато си намеря грешката, а copy-paste-а беше причината да се появи грешката. Иначе условията се изтеглиха веднага . В bg coder-a са :)

от MarVel (93 точки)


1
На мен поуката ми е да не се захващам със 2 задачи едновременно.Почнах с 5-та, утрепах много време, и реших че мога да реша 3-та.И така нито едното, нито другото.Изкарах общо 28 точки от тези задачи, супер много ме е яд.Останах със 328 точки.

от milen_d (37 точки)


6
if (Environment.CurrentDirectory.
                ToLower().
                EndsWith("bin\\debug"))
{
    Console.SetIn(new StreamReader("input.txt"));
}
 
Това ти пренасочва inputa на конзолата към горепосочения файл. При bgcoder няма да влиза в if-a, тъй като неговата папка не е bin\debug :)
 

от davidvesely (97 точки)


0
Можеш да ползваш и директиви за същото нещо: #if DEBUG Console.SetIn(new System.IO.StreamReader("../../test.002.in.txt")); #endif
Освен това ако често го ползваш, може да си направиш snippet, примерно "input

от bmmarinov (1498 точки)

0
Мерси много! Това определено е полезно да се знае.

от skaniol (90 точки)


0

Аз също харесвам бит-ачиските задачи и решавах доста и от тях, но за съжаление не се справих с Game of Page (то авторското решение е 350 реда).

Реално погледнато на изпита имах време да реша Enigmatation, която също беше трудна понеже за да се реши със сегашните ни знания е доста голяма хамалогия.  Бях почнал да я правя точно като авторското решение, но се отказах мислейки си, че не може точно така да се решава и, че има по-добър начин, който на мен ми обягва. Тръгнах да чета по форуми за неща които не сме учили и в крайна сметка нищо не направих. След 3 часа имах решени 3 задачи и за следващите 3 не направих нищо. Това което трябваше да направя е да натисна енигматейшън и да я напиша вместо да се лутам между нея и Game of Page. За game of page не съжалявам, тъй като виждам, че наистина не бих могъл да я реша на изпит. Не ми помогна и това, че съм с брутална настинка от една седмица и ужасяващо главоболие, но такива оправдания не са ми присъщи така, че спирам до тук :)


от dimo.petrof (2887 точки)


1
Аз се бях постарала да си измисля схема, последователност как да решавам задачата. Така поне вкъщи докато си решавах действах стъпка по стъпка и дори заплетените задачи ми се получаваха. На изпита обаче под напрежение и притисната от времето, пренебрегнах много от нещата, които бях научила, че са добра пракика при решаване на задачите. И съответно в един момент си загубих мисълта - не помнех какво съм направила до момента със съответната задача ... и стана тя каквато стана. Е, пак реших 3 задачи, но знам, че можех и по-добре. Занапред смятам да си имам едно наум относно това.
Друго нещо беше, че в един момент почнах да налучквам какво може да проработи. Тогава съвсем вече загубих нишката какво правя. Не мисля, че това е най-правилния начин.

от ADimanova (548 точки)


0
Аз така в един момент полудях малко с Kaspichania's boats. После един от трейнърите каза, че трябвало числото N да е нечетно, макар че при мен работи и с четно. Накрая на задачата вече бях полудял (на дъното на кораба), но все пак го направих и се изкефих като ми даде 100/100.

от dimo.petrof (2887 точки)


0
Аз не питах тренърите за задачите по време на изпита. Следващия път ще ги питам да ми разяснят условието за нещата, които не се досещам.

от lithical (0 точки)


0
Аз също не съм ги питал, те го казаха така, че всички да го чуят.

от dimo.petrof (2887 точки)

0
на моя изпит не беше така.

от lithical (0 точки)


1

Решаване на повече задачи,да не се задълбочавам в една задача и преди изпит не е хубаво да си нервен smiley.




0
аз бях и 4 часа си висях на 80 точки...постоянно мислех, че нямам време и как ще се проваля и накрая за 2 часа се съвзех и изкарах 300 точки...все пак се изложих, благодарение на притеснението.. : )

от Шаги Руменов (0 точки)


0
Ами аз мисля че започнах много стегнато и подредено. Направих лесните задачи без много усилие. Вярно бях на принципа 70/100 на първите две задачи. Но за сметка на това доста бързо намерих грешките - буквално за секунди. Особено на първата задача като видях че последните тестове са грешни си казах ясно тука някъде препълва и смених int с long. (Това дори беше старателно подчертано от един от инструкторите). На Втората задача решението ми се събра просто на 20 реда. Един цикъл и два if-a и пак 70 точки. Малко заблуждаващи бяха тестовете и си имах едно на ум за други символи освен числа. Веднага смених Parse s TryParse и там се получи веднага 100/100. Започнах трета -виакм си супер calc но ми се видя доста трудоемка след като загубих 20-тина минути затова реших да видя 4-та. И там се справих учудващо бързо с двумерен масив и чертане едновременно в две посоки. Викам си супер 3 задачи. Дай да видим тези побитови операции там ще е лесно. И утрепах ужасно много време в тази задача - така и не я докарах до края. Ядосах се и я оставих. Върнах се на 3-та и като погледнах времето - видях че ако повързам ще успея. Е за съжаление не успях. Просто ми трябваха само още 10 минути.

от ddonchev (120 точки)


0
И при мен същата ситуация, само 3-та я реших за 60 точки, а 4-та я бях решила преди това, та реших, че побитовата ще има време за нея. Ма се забатачих и взех само 10 точки :(.

от cerealBoxx (504 точки)


1
Поуката за мен е, че стратегията прави 20 - 30% разлика в крайния резултат, по груби сметки.

от miroslav.tsakov (1476 точки)


3
На изпита в повечето случаи се изкарва по-малко, отколкото у дома. Аз реших всяка една от задачите, но не на всички хванах максималния брой точки. В действителност вместо да си търся грешките предпочетох да премина на следващата задача. Истината е, че понякога е нужен и късмет относно подхода към решението. Решаваш задачата по един начин и се надяваш да се окаже най-ефективният, ако ли не - трябва да кърпиш, защото време за пренаписване не остава. На Warhead например интуитивно написах решение с матрици, отделих поне 20 минути за собствени тестове и всичко изглеждаше да връща коректен отговор, bgcoder обаче ми даде 66/100. Ако бях подходил по различен начин в началото, можеше и да не стане така, но време за това не остана.
Според мен е глупаво човек да се обезсърчава след този изпит. За повечето от нас това е първо в живота явяване на подобно състезание, липсата на опит може и да попречи да се вземат 50-100 точки по-вече, но такъв е живота. Даваш всичко от себе си и се надяваш на най-доброто.

от stinger907 (307 точки)


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


0
По-обемните задачи трудно се пренаписват, защото човек трудно съхранява в паметта си цялата логика на задачата, а когато времето притиска става още по-трудно. По-скоро трябва да се върви стъпка по стъпка и всеки отделен компонент, да се тества своевременно. Но всичко е относително в крайна сметка.

от stinger907 (307 точки)