Tobben panaszkodtak, hogy a probaverseny B feladataban (Nonstop Travel) jo
a programjuk, de WRONG ANSWER-t kaptak. Utananeztunk, es azt tapasztaltuk,
hogy -O3 kapcsoloval forditva hibas eredmenyt ad a program, de
optimalizacio nelkul jol mukodik. A kulonbseg a lebegopontos szamokkal
torteno szamolasbol ered. Ha ugyanis x osztja y-t, akkor az fmod(y,x)
vagy 0-t ad, vagy egy nagyon kicsi szamot, vagy x minusz egy nagyon kicsi
szamot. Vagyis az fmod(y,x)>z helyett azt kell irni, hogy
fmod(y,x)>z-EPSILON || fmod(y,x)>x-EPSILON
Ilyen esetben azt is vegig kell gondolni, hogy mit kell tenni akkor, ha
fmod(y,x) pont z, a fenti kifejezesnel azt felteteleztuk, hogy ilyenkor
is igaz erteket kell adni.
Marx Dani
Show replies by date