Prejsť na obsah
ProFIIT
    súťaž stredoškolákov v programovaní

 

 

1 Odporúčané názvy programov

Odporúčame odovzdávať programy s takýmito koncovkami:

  • Pascal: .pas, .dpr
  • C: .c
  • C++: .cpp, .cc

 

2 Odporúčania pre riešenia

Ukážeme si vzorové riešenie tohto problému pre jednotlivé jazyky.

 

2.1 Pascal/Delphi

Programy v Pascale nemôžu používať žiadnu knižnicu (žiadne uses), t. j. ani Crt alebo SysUtils.

V Delphi 7 treba vytvoriť konzolovú aplikáciu cez File/New/Other... Console application.

Príklad riešenia:

program Sucet;

{riadok pod tymto textom je dolezity len pre Delphi}
{$APPTYPE CONSOLE}

Var
  n, a, b: longint;

begin
  readln(n);
  while n > 0 do begin
    n := n - 1;
    readln(a, b);
    writeln(a + b);
  end;
end.

 

2.2 C/C++

Funkcia main musí byť typu int a jej návratová hodnota musí byť 0.

Upozorňujeme, že pre niektoré veľké vstupy/výstupy môže byť použitie cin a cout v C++ pomalé.

Príklad riešenia:

int n, a, b;
int main() {
  scanf("%d", &n);
  while (n-- > 0) {
    scanf("%d%d", &a, &b);
    printf("%d\n", a + b);
  }
  return 0;
}

 

3 Odovzdávanie riešenia

Pred každým odovzdaním riešenia odporúčame vyskúšať skompilovať daný program verziou kompilátora, ktorý je na serveri. Ďalej skontrolujte, či nepoužívate niektoré zo zakázaných funkcií.

 

4 Presmerovanie vstupu a výstupu

Všetky problémy sú zadané tak, že vstupné dáta majú byť načítavané zo štandardného vstupu (klávesnice) a výstup má byť vypísaný na štandardný výstup (obrazovku). Aby ste mohli jednoducho testovať svoje programy, použite presmerovanie vstupu pomocou < a presmerovanie výstupu pomocou >. Ak chcete ako vstup programu P.exe načítať dáta zo súboru vstup.txt (t.j. akoby ste to, čo je v súbore, písali na klávesnici), spustite program takto:

  • P.exe < vstup.txt

Ak chcete vypísať výstup programu P.exe do súboru vystup.txt, spustite program takto:

  • P.exe > vystup.txt

Ak chcete aj načítať vstup zo súboru a aj vypísať výstup do súboru, použite:

  • P.exe < vstup.txt > vystup.txt

 

5 Rozsah typov premenných

Pascal: Rozsah niektorých typov premenných pre kompilátor fpc:

Typ premennej Rozsah
Integer -32768..32767
Longint -2147483648..2147483647
Word 0..65535
Longword 0..4294967295
Int64 -9223372036854775808..9223372036854775807

C: Rozsah niektorých typov premenných pre kompilátor gcc:

Typ premennej Rozsah
short int -32768..32767
int -2147483648..2147483647
unsigned short int 0..65535
unsigned int 0..4294967295
long long -9223372036854775808..9223372036854775807

 

6 Odporúčaná stratégia

Riešenia problémov nemusíte odovzdávať v poradí, v ktorom sú zadané! Vzhľadom na spôsob merania času pre správne odovzdané riešenia (celkový čas sa pre každý príklad počíta od začiatku súťaže), je výhodné najprv identifikovať a vyriešiť najľahšie problémy (tie, ktoré vyriešite v najkratšom čase).

Príklad: Ak potrebujeme na vyriešenie problému A 3 hodiny a na vyriešenie problému B 30 minút, potom môžeme:

  1. Riešiť najprv problém A, a potom problém B (obr. 1). Súčet časov bude (A-Z) + (B-Z) = 3 + 3,5 = 6,5 hodiny.


  2. Obr. 1. Čas pre riešené príklady - najprv ťažší.

  3. Riešiť najprv problém B a potom problém A (obr. 2). Súčet časov bude (B'-Z) + (A'-Z) = 0,5 + 3,5 = 4 hodiny.


  4. Obr. 2. Čas pre riešené príklady - najprv ľahší.