NepřihlášenKSP fórum
Fórum Hlavní stránka Nápověda Hledat Přihlásit
Nahoru Téma KSP / CodEx / 25-3-6: Rytíř a princezny
- - Od Vladan Dne 19. 01. 2013 22:39
Zdravím,
riešil som túto úlohu v Pascale. Myslím si, že to mám správne (čo je, samozrejme, irelevantné), vstupy zo zadania mi doma fungujú, ale CodEx všetky nekompromisne hodnotí ako WA. Môže byť problém niekde inde, než v mojej blbosti?
Nadřazený - - Od Lukáš "Folwar" (Org) Dne 19. 01. 2013 22:54
Ahoj,
program Ti pravděpodobně nefunguje správně :)

Například pro následující vstup:
6
D 4
D 3
P 2
D 2
P 3
P 2

Vypíšeš "ANO 8", při tom správně je "ANO 6".

Přeji, ať se podaří chybku odchytit ;)
Měj se
Lukáš "Folwar"
Nadřazený - Od Vladan Dne 22. 01. 2013 18:08
Opäť bol problém medzi klávesnicou a stoličkou. Ďakujem :)
- - Od Dominik Macháček (Org) Dne 30. 01. 2013 22:28
Ahoj,
řešim tuhle úlohu v C++, je to jeden z prvních programů, který v něm píšu, ještě ho pořádně neumím. Myslim, že algoritmus řešení mám správně a taky to vypisuje správný výsledek, ale kromě něj i backtrace, memory map, které vůbec nerozumím, a nakonec Aborted (core dumped).

Co to je? A proč to je? Přitom v CodEx to vyhodnotí jenom jako WA. Může to být tím, že používám kontejner vector nějak špatně?
Nadřazený - - Od Vojtěch Sejkora (Org) Dne 30. 01. 2013 23:00
můžeš mi prosím poslat ten kód... sice org nejsem.. v C++ až takový mástr také nejsem (v tom je asi nejpovolanějsí MJ a vorner) ale myslím, že bych třeba něco najít mohl

mimochodem už mám odevzdáno za plný počet bodů také v C(++)
Nadřazený - - Od Dominik Macháček (Org) Dne 30. 01. 2013 23:27
Pošlu, ale kam?
Nadřazený - Od Vojtěch Sejkora (Org) Dne 30. 01. 2013 23:29
ideálně zprávou :-)
Nadřazený - Od vorner (Org) Dne 31. 01. 2013 09:38
No, backtrace a memory map jsou nějaké vnitřní stavy. Cčková knihovna pravděpodobně došla k názoru, že něco je fakt špatně a tohle vyplivla jako poslední zoufalý pokus ti pomoct zjistit co. Aborted potom jen znamená, že to poté knihovna vzdala a zbaběle spáchala sebevraždu.

Hádám, že někde kolem toho backtrace bude i nějaká rozumnější chybová hláška, jako třeba „Heap corruption“ nebo „Double free“. Ty řeknou trochu víc o tom, co nehezkého jsi provedl.

Můj tip bude, že lezeš někde mimo ten vektor (a on nekontroluje rozsahy, ale můžeš zkusit zkompilovat s parametrem -D_GLIBCXX_DEBUG, ten by mohl povolit některé sice pomalé, ale pomocné kontroly, případně ve valgrindu, který by mohl sdělit více).

Jinak, pokud budeš někomu posílat kód, tak, prosím, soukromě. Asi tě to napadlo, ale já jen pro jistotu.
Nadřazený - - Od Lukáš "Folwar" (Org) Dne 01. 02. 2013 12:48
Ahoj, jak to dopadlo?

Pokud je stále s něčím problém, napiš mi e-mail a vyřešíme to.

S pozdravem
Lukáš "Folwar"
Nadřazený - Od Dominik Macháček (Org) Dne 01. 02. 2013 13:39
Už jsem na to přišel, tahle chyba je pryč. Objevily se jiné, ale ty snad taky odstranim. Nápad mam.
- - Od RiHL (Org) Dne 01. 02. 2013 12:43
Může být koeficient krásy i 0 nebo jenom >0 ?
Nadřazený - - Od Lukáš "Folwar" (Org) Dne 01. 02. 2013 12:47
Ahoj, ve vzorových vstupech je vždy kladný.
Nadřazený - Od RiHL (Org) Dne 01. 02. 2013 13:24
Dobře, díky.
- - Od RiHL (Org) Dne 01. 02. 2013 15:18 Upraveno 01. 02. 2013 16:26
Ahoj,
Nějak jsem sesmolil řešení v C (C++ jsem vůbec nikdy nezkoušel a Pascal sice přečtu, ale nic v něm nenapíšu), dokonce mi to ani nehází SIGSEGV a dokonce to i u nějakých řešení napíše správný výsledek. Právě ale, že jen u nějakých. Správně fungovalo 5, u zbylých to házelo SIGFPE. Potom, co jsem odhalil, proč to hází SIGFPE a jak to spravit, mi to pro změnu hází WA:Wrong answer. Může mi někdo prosím poradit, co dělám špatně? Můžu dodat detaily a zdroják, na fóru se ale nechci moc veřejně rozepisovat.

EDIT: Aha, trochu jsem podcenil složitost problému a přehlédl docela zajímavý detail..
Nadřazený - - Od Jan Maria Matějka (Org) Dne 01. 02. 2013 21:46
Ahoj

> Nějak jsem sesmolil řešení v C (C++ jsem vůbec nikdy nezkoušel a
> Pascal sice přečtu, ale nic v něm nenapíšu), dokonce mi to ani nehází
> SIGSEGV a dokonce to i u nějakých řešení napíše správný výsledek.
> Právě ale, že jen u nějakých. Správně fungovalo 5, u zbylých to házelo
> SIGFPE. Potom, co jsem odhalil, proč to hází SIGFPE a jak to spravit,
> mi to pro změnu hází WA:Wrong answer. Může mi někdo prosím poradit, co
> dělám špatně? Můžu dodat detaily a zdroják, na fóru se ale nechci moc
> veřejně rozepisovat.


SIGFPE je dělení nulou. Tohle může být nějaká zapeklitá chyba typu
off-by-one, možná někde přetékáš do neinicializované paměti. Zkus se
nejdřív podívat, kde bys mohl dělit nulou, možná tím spravíš i zbytek;
pokud ne, ozvi se.
Nadřazený - Od RiHL (Org) Dne 01. 02. 2013 22:38
Díky, konkrétně to bylo modulení nulou, jde o to, že jsem to spravil, a teď to nefunguje z důvodu, který jsem předtím nechápal, teď už ho chápu (není to nějaká malá přehlédnutá chyba, spíš to, že jsem si úplně správně nerozmyslel, jaké řešení je ideální, tzn. při kterém získá rytíř nejvíc mincí)
Nahoru Téma KSP / CodEx / 25-3-6: Rytíř a princezny

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill