[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
Messages posted by: obi1kenobi
Forum Index » Profile for obi1kenobi » Messages posted by obi1kenobi
Author Message
Кико има право, ако погледнеш во call stack полето, ќе видиш колку длабоко си стигнал во рекурзијата и со кои аргументи си ја повикал функцијата на кое место -- и треба да размислиш дали всушност си требало да стигнеш до таму
Ако паѓа на ред кај што почнува функција (значи редот со { ) тогаш имаш segmentation fault како резултат на повикот на фукцијата -- веројатно си го надминал слободното место на stack-от како резултат на предлабока рекурзија.

Тоа Кико што го забележа оди во прилог на тоа што ти го покажува debugger-oт.
Пушти ја во debugger задачата на примерот кај што јавува грешка и види барем на која линија е грешката. Тој излезен код е segmentation fault, така да некаде пристапуваш на недозволена мемориска локација.
Секаде читаш од p[n], ner[n], z[n] и слично наместо од p[i], ner[i], z[i].

Иначе, зошто печатиш празен ред после секој ред што го вчитуваш? За среќа Мендо ги игнорира празните редови, ама тоа не е гарантирано на сите натпревари така да може да ти се случи на точно решение да добиеш 0 поени...
Scratcher wrote:
MOI wrote:Смени

со


Наша грешка е ова . Ќе пробаме да средиме неделава (само за оваа задача важи - другите, би требало да, се OK).

Ти благодарам мноооогууу. Ми прифати. Иначе, можам и таб да користам, не е важно тоа, туку, имам уште едно прашање до вас:Дали можам оваа задача да ја решам и без тој условот:
Или пак, морам и тоа да го поставам?


Види вака, можеш да користиш таб се додека еден ден, веројатно надвор од Македонија и на систем што не е Мендо, не ти се случи сосема точна задача да ти биде оценета со 0 бодови заради тој табулатор. Имам видено многу луѓе што изгубиле поени заради грешки во печатење, и мене ова искрено ми звучи на барање на беља, ама ти како сакаш...
Печатиш табулатор ('\t') помеѓу броевите наместо празно место (' '). Никогаш на натпреварите не се користи табулатор освен ако тоа експлицитно не е наведено.
pow враќа double, а ти имаш имплицитна промена во int. Дури и ако не е тоа причина за грешката, ептен е лошо тоа да го имаш во кодот.
Провери дали ги иницијализираш сите променливи -- во 99% од случаевите тоа е проблемот во вакви ситуации.
1. Види ја датата на темата.

2. Класичен flood fill? Ова сакам да го видам, исто како спорото BFS...
Наместо асоцијативни мислиш на секвенцијални, нели? Асоцијативни = map, set итн...
Наместо да нагаѓаме каде е проблемот, нели би било најдобро ако го уклучиш програмот со дебагер и ги провериш сите вредности на променливи?

Генерално е добра идеја заедно со низата како параметар во функцијата да ја додадеш и должината на низата, затоа што понекогаш имаш ситуации кога низата не е сосема полна и слично...
Не знам дали стипендијата е поврзана со просекот, ама ако си доволно добар да добиеш стипендија од натпреваров, чисто се сомневам дека ако вистински се трудиш би имал проблеми да одржиш просек 9.00.
vavio wrote:
obi1kenobi wrote:
vavio wrote:
ај еве и јас некој коментар да додадам во врска со програмирањето
глобалните променливи се лоша работа за програмирање...


Во генерала да, ама на натпревари се ок се додека ги држиш под контрола. Тоа повеќе се однесува на големи проекти, кога не знаеш кој код од каде може да ти чачка во глобалните променливи...


без разлик дали се работи за голем или мал проект, би потрошил неколку секунди да предадам во функција некој променливи, отколку да користам глобални променливи.


На натпревар буквално секоја секунда се важи, така да некои правила како на пример ова се малце... флексибилни Ако веќе таква ти е логиката, тогаш треба да пишуваш и коментари и документација за секоја функција, да го проверуваш влезот дали е валиден и променливите да ги именуваш со долги и описни имиња наместо i,j,x,y,a,b
vavio wrote:
ај еве и јас некој коментар да додадам во врска со програмирањето
глобалните променливи се лоша работа за програмирање...


Во генерала да, ама на натпревари се ок се додека ги држиш под контрола. Тоа повеќе се однесува на големи проекти, кога не знаеш кој код од каде може да ти чачка во глобалните променливи...
bedzo wrote:
obi1kenobi wrote:Е Беџо, извини вака, стварно убаво од тебе што ги постираш решенијата и се, ама кодот за Лавиринт ти е школски пример како не се програмира... Колку што имаш повторувања, можеш комотно да го разделиш во барем три функции и ем полесно да се чита, ем да се знае што правиш...

Вака ми е напишан кодот бидејќи повеќе време ќе изгубам да мислам функција одколку да го копирам првиот if и да додадам уште по еден if statement внатре. А ги разделив така бидејќи ако ги ставев во фор(за чекорите) ќе ми беше потешко да дебагирам, инаку забелешката ти е целосно на место. И дај ако можеш кажи (или дај код) како мислеше да го разделам на функции.


Копирање код од едно на друго место е многу опасна работа, на два-три пати имам изгубено цела задача заради тоа што сум ископирал код со грешка и после на некое место сум заборавил да ја поправам грешката... Јас да бев, би напишал функција што проверува дали некое поле е валидно (дали смееш да стапнеш таму, дали е внатре во матрицата и се) и уште една функција што дадено поле го разгледува и ги додава можните соседи. По потреба, можеш и на помали делчиња да го разделиш ако сакаш.
 
Forum Index » Profile for obi1kenobi » Messages posted by obi1kenobi
Go to:   
Powered by JForum 2.1.8 © JForum Team