MWPZ - Mistrzostwa Wielkopolski w Programowaniu Zespolowym

Tutorial

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.