Jak snadno zpracovat

vstup a výstup?

Pokud programuješ v JavaScriptu, užitečné informace nalezneš na samostatné stránce.

V soutěži si stáhneš vstupy, které budou většinou docela velké. Jak nejlépe a nejrychleji dostat tato data do tvého programu? Přesměrování standardního vstupu je užitečná pomůcka, tou určitě rozšiř svůj arzenál!

Potřebuješ:
  1. uložit vstup do souboru
  2. příkazový řádek
  3. najít spustitelný soubor tvého programu
Jak najít spustitelný soubor?

Pokud překládáš pomocí řádkových programů (jako gcc, g++, apod.), určitě víš, kde output file je (u g++ si můžeš pomocí -o filename specifikovat, jak se bude jmenovat).

Co dělat, pokud používáš nějaké IDE? Třeba Codeblocks, Eclipse, Visual Studio, Dev C++, ...?

Máš dvě možnosti. Za prvé zkusit najít v možnostech projektu tvého programu něco jako „program arguments“ (u různých IDE se může lišit). Pokud toto najdeš, pokračuj na další krok.

Za druhé přeložit svůj program a někde ve složce projektu najít spustitelný soubor svého programu. U Codeblocks / Visual Studia bývá v projekt/bin/Debug/, kde „projekt“ je jméno vašeho projektu.

Přesměrování vstupu:
Příkaz, kterým přesměrujeme vstup, vypadá jednoduše. Pokud jste v příkazové řádce v adresáři, ve kterém je program i vstup, napište toto:
program.exe < in.txt          (Windows)
./program < in.txt            (Linux)
python program.py < in.txt    (Python)
java Program < in.txt         (Java)
Tento příkaz předá soubor in.txt programu program na standardní vstup. Všechna data tedy jdou přečíst například funkcemi:
scanf()            (C)
cin >>             (C++)
input()            (Python)
System.in          (Java)
Console.ReadLine() (C#)
Přesměrování výstupu:
Výstup přesměrujeme úplně stejně, akorát menšítko přehodíme za většítko.
program.exe > out.txt
./program > out.txt
python program.py > out.txt
java Program > out.txt

Přesměruje všechny standardní výstupy do souboru "out.txt", který můžeš odevzdat do soutěže!

Obě přesměrování lze kombinovat:
./program < in.txt > out.txt

Toť vše! Tenhle malý trik je k nezaplacení při ladění programů se složitějšími vstupy, které musíš opisovat pořád dokola! Stačí uložit a přesměrovat.

Máš na to!

I ty můžeš vyhrát! Nebo to aspoň zkusit :)