Codeforces Beta Round 61 (Div. 2) |
---|
Закончено |
Маленький Петя недавно начал посещать кружок по программированию. Естественно, перед ним появилась задача выбрать язык, на котором он будет программировать. После долгих размышлений, он понял, что Java — лучший выбор. Главным аргументом в пользу выбора Java было то, что в ней есть очень большой целочисленный тип данных — BigInteger.
Но после посещения занятий кружка, Петя понял, что не все задачи требует использования типа BigInteger. Как оказалось, в некоторых задачах намного удобнее использовать маленькие типы данных. Поэтому возникает вопрос: «Какой целочисленный тип использовать, если нужно хранить натуральное число n?»
Петя знает лишь 5 целочисленных типов:
1) byte занимает 1 байт, позволяет хранить числа от - 128 до 127
2) short занимает 2 байта, позволяет хранить числа от - 32768 до 32767
3) int занимает 4 байта, позволяет хранить числа от - 2147483648 до 2147483647
4) long занимает 8 байт, позволяет хранить числа от - 9223372036854775808 до 9223372036854775807
5) BigInteger позволяет хранить любое целое число, но при этом не является примитивным типом, и операции с ним выполняются гораздо медленнее.
Для всех указанных выше типов значения границ включаются в диапазон значений.
Из этого списка Петя хочет выбрать самый маленький тип, в котором можно хранить натуральное число n. Так как BigInteger работает гораздо медленнее, Петя рассматривает его в последнюю очередь. Помогите ему.
В первой строке записано натуральное число n. Оно состоит не более чем из 100 цифр и не содержит лидирующих нулей. n не может являться пустой строкой.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать поток cout (также вы можете использовать спецификатор %I64d).
Выведите первый тип из списка "byte, short, int, long, BigInteger", в котором можно хранить натуральное число n, в соответствии с данными, приведенными выше.
127
byte
130
short
123456789101112131415161718192021222324
BigInteger
Название |
---|