Одна из причин, по которой я всегда любил покемонов, заключается в том, что в такой простой, на первый взгляд, игре много уровней сложности. Давайте рассмотрим ход Hidden Power. В игре тип и сила (по крайней мере до VI поколения) скрытой силы различна для каждого покемона, который его использует! Это довольно круто, правда? Теперь, вы будете удивлены, если я скажу вам, что тип и сила Скрытой Силы не генерируются случайным образом?
Во всех играх покемонов все покемоны (не только в вашей группе, ВСЕ ПОКЕМОНЫ) имеют шесть целых чисел, хранящихся внутри (одно для характеристики HP, одно для характеристики атаки, одно для характеристики защиты, одно для особой характеристики атаки, один для особой защиты и один для скорости), называемый их индивидуальными значениями, или IV. Эти значения находятся в диапазоне от 0 до 31, и они по сути являются одним из немногих факторов, которые влияют на общую статистику покемонов. ОДНАКО, они также определяют тип и силу Скрытой Силы!
В поколениях с III по V (поколения, чей алгоритм мы будем реализовывать), тип скрытой силы определяется по следующей формуле (обратите внимание на квадратные скобки, это означает, что вам нужно округлить результат):
где a, b, c, d, e и f - младшие значащие биты HP, Attack, Defense, Speed, Sp. Attack и Sp. Защита IVs соответственно. (Наименее значимым битом является IV mod 2.) Произведенное здесь число затем можно преобразовать в фактический тип, используя эту диаграмму:
0 Fighting
1 Flying
2 Poison
3 Ground
4 Rock
5 Bug
6 Ghost
7 Steel
8 Fire
9 Water
10 Grass
11 Electric
12 Psychic
13 Ice
14 Dragon
15 Dark
Для мощности используется аналогичная формула:
Здесь, однако, u, v, w, x, y и z представляют второй младший бит HP, Attack, Defense, Speed, Sp. Атака и Sp. Защита IV (в том же порядке). (Второй младший значащий бит является более сложным, чем младший значащий бит. Если IV mod 4 равен 2 или 3, то бит равен 1, в противном случае он равен 0. Если ваш язык имеет какой-то встроенный или, по крайней мере, более умный способ чтобы сделать это, вы, вероятно, должны использовать его.)
Итак, как вы, наверное, уже поняли, задача здесь состоит в том, чтобы написать программу, которая принимает шесть целых чисел, разделенных пробелами через STDIN, которые представляют HP, Attack, Defense, Speed, Sp. Атака и Sp. Защитите IV Покемона (в таком порядке) и выведите тип и силу Скрытой Силы этого Покемона.
Пример ввода:
30 31 31 31 30 31
Пример вывода:
Grass 70
Пример ввода:
16 18 25 13 30 22
Пример вывода:
Poison 61
Это код-гольф, поэтому выигрывает самый короткий код. Удачи!
(И прежде чем люди спросят, я использовал алгоритм Generation V здесь, потому что Generation VI избавляется от рандомизации мощности и делает ее всегда 60. Я не только считаю, что это невероятно хромая, я думаю, что это делает задачу МЕНЬШЕ ИНТЕРЕСНОЙ. для выполнения задачи мы запускаем игру Gen V.)