Od przybytku głowa nie boli
Powiększmy zatem tablicę, a nawet (na wszelki wypadek) zróbmy pewn± rezerwę:
var d,n,i : longint; f : array[0..200000000] of longint; begin readln(d); while (d>0) do begin d:=d-1; readln(n); f[0]:=0; f[1]:=1; for i:=2 to n do f[i]:=(f[i-1]+f[i-2]) mod 10000; writeln(f[n]); end; end.
Wysłanie takiego programu spowoduje, że Sprawdzarka zwróci także ocenę:
Runtime Error
Zadeklarowana tablica jest zbyt duża. Każdy program ma do dyspozycji jedynie 32MB pamięci na stos i 32MB na stertę, więc wszystkie zmienne i tablice (także te zaalokowane dynamicznie) nie mog± zajmować więcej.
W ogólno¶ci rezerwa jest zalecana, by zabezpieczyć się przed błędem przekroczenia zakresu tablicy o kilka elementów. Jednak nie powinna być ona aż tak absurdalnie duża, a wynosić jedynie parę (np. 10) elementów.