program obraceniVstupu;
{ Vstup: nezáporné číslo n (<= 1000) a následně n čísel. Všechny se vejdou do integeru.
Výstup: Těch n čísel vypsaných v opačném pořadí (všechny na jedné řádce).
Myšlenka řešení: Všech n čísel si načteme do pole. Následně toto pole vypíšeme v opačném pořadí.
Časová složitost: lineární, tedy O(n) (kde n je nejvyšší možný počet čísel na vstupu).
Na každé z n čísel se totiž podíváme právě dvakrát:
když ho ukládáme do pole a když ho vypisujeme z pole.
Paměťová složitost: lineární, tedy také O(n). Potřebujeme totiž pole velikosti n (a dále už jen 2 proměnné). }
var n,i : integer;
cisla : array[1..1000] of integer; { Pole, do kterého si budeme ukládat n čísel ze vstupu. }
begin
read(n);
for i:=1 to n do { Načítání n vstupních čísel do pole - na pozice 1 až n. }
read(cisla[i]);
for i:=n downto 1 do { Výpis pole od n-tého indexu až k prvnímu. }
write(cisla[i],' '); { Všimněte si, že za každým číslem vypisujeme mezeru. Kdybychom to neudělali,
nerozeznali bychom, kde končí jedno a kde začíná druhé číslo. }
end.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)