Как использовать int как long int для соревновательного программирования?

Опубликовано: 14 Сентября, 2022

В большинстве случаев ограничения ввода в вопросах соревновательного программирования больше, чем ограничения int. Следовательно, необходимо использовать long int или даже long long int. Здесь давайте возьмем два случая, чтобы, если наивный пользователь пишет правильную логику, но ввод не принимается, он мог узнать, где требуется исправление.

Случай 1: большой целочисленный ввод без переопределения int как long long int
Случай 2: Большой целочисленный ввод с переопределением int как long long int

Случай 1: большой целочисленный ввод без переопределения int как long long int

Пример:

Выход:

prog.cpp: In function ‘int main()’:
prog.cpp:5:10: warning: overflow in implicit constant conversion [-overflow]
 int x = 1e10; 
         ^

Выходное объяснение :

Это связано с тем, что диапазон чисел, которые может содержать целочисленный тип данных, составляет 4 байта, что означает, что он может содержать целые числа в диапазоне от -2 147 483 647 до 2 147 483 647. Здесь, в нашем случае, вывод превышает максимальное целое число, которое может содержать переменная, поэтому выдайте предупреждение о неявном преобразовании константы. Поэтому нам нужно использовать длинный тип данных, так как он может содержать 8 байтов. Чтобы исправить то же самое, нам нужно переопределить int. Однако программа все равно выдаст ошибку, так как тип данных основного также изменится. Поэтому определяем их как int, чтобы наша скорость в соревнованиях могла увеличиться. (т.е.) #define int long long int .

Случай 2: Большой целочисленный ввод с переопределением int как long long int

Пример:

Note: This is generally used in competitive programming problems as it will accept all input sizes.