Division
Let $a$ and $b$ be positive integers.
When we do a / b, the decimal part gets truncated,
so it is effectively floor division (i.e. $\lfloor \frac{a}{b} \rfloor$).
e.g., 5 / 2 == 2.
If we want to do ceiling division (i.e. $\lceil \frac{a}{b} \rceil$),
we have to convert one of the arguments into a float/double,
then use ceil from <cmath>.
e.g., ceil(5 / 2.0) == 3.
<algorithm>
min(a, b) and max(a, b) return the minimum/maximum of $a$ and $b$.
Note that $a$ and $b$ need to be of the same type.
Say for an integer $c$, we want to turn it into zero if it is negative, but do nothing if it is zero or positive.
Then we would write c = max(c, 0);.
Macros
We can create shorthands for C++ syntax. For example, at the top of the file, we add #define ll long long.
Now we can use ll instead of long long throughout the file.
Authored by s16f22