Обычно, в задачах по олимпиадному программировании условие составлено так, чтобы результат входил в 10^7.
Поэтому хватает стандартного int, который на большинстве современных платформ int32_t.
Редко бывает такое условие, что результат long.
Всё таки упор делается на алгоритмы, а не знание диапазонов целых типов.
А в промышленном программировании, особенно с микроконтроллерами, лучше явно указывать тип.