Listing 1.3: Dodatkowe nagłówki
01 #include <complex>
02 #include <iterator>
03 #include <set>
04 #include <bitset>
05 #include <map>
06 #include <stack>
07 #include <list>
08 #include <queue>
09 #include <deque>
// Stała INF jest wykorzystywana jako reprezentacja nieskończoności. Ma ona // wartość 1000000001, a nie 2147483647 (największa wartość typu int) ze // względu na dwa fakty - prosty zapis, oraz brak przepełnienia wartości zmiennej // w przypadku dodawania dwóch nieskończoności do siebie // ((int) 2147483647 + (int) 2147483647 = -2).
10 const int INF = 1000000001;
// Stała EPS jest używana w wielu algorytmach geometrycznych do porównywania // wartości bliskich zera (w zadaniach tego typu pojawia się wiele problemów // związanych z błędami zaokrągleń)
11 const double EPS = 10e-9;
// Skrócone nazwy różnych typów i operatorów o długich nazwach
12 typedef vector<VI> VVI;
13 typedef vector<LL> VLL;
14 typedef vector<double> VD;
15 typedef vector<string> VS;
16 typedef pair<int, int> Pil;
17 typedef vector<PII> VPII;
18 #define PF push_front
19 #define MP make_pair
Znane są, przypadki, że niektórzy zawodnicy tworzyli przy użyciu makr własne, specyficzne języki programowania, pozwalające na szybkie pisanie programów. Takie podejście wymaga niestety przepisania znacznej ilości kodu, zanim przystąpi się do właściwego rozwiązywania problemu. W przypadku konkursów organizowanych przez Internet podejście takie okazuje się jednak bardzo wygodne. W dodatku A znajduje się przykładowe „środowisko” programistyczne, wykorzystywane w konkursie TopCoder przez Eryka Kopczyńskiego. Jest ono dość rozbudowane, dlatego też w innych konkursach (takich jak ACM ICPC) okazuje się nieprzydatne.
12