мари13121
12.08.2020 04:29

РЕШИТЬ! ИНФОРМАТИКА!
Стартап BytelandCasualGames специализируется на разработке небольших компьютерных игр, предназначенных для игроков, которые могут уделить игре только небольшое время.

Сейчас в BytelandCasualGames разрабатывают онлайн-вариант известной игры, называемой «гексагональные шахматы»

Доска для гексагональных шахмат, используемая в этом варианте игры, имеет вид шестиугольника со стороной 6, собранного из 91 единичных шестиугольников, как показано на рисунке ниже, изображающем также начальную позицию в шестиугольных шахматах.

Аналоги вертикалей (их всего 11) занумерованы строчными латинскими буквами от `a' до `k' включительно. 11 горизонталей имеют V-образную форму и пронумерованы от 1 до 11 снизу вверх. Таким образом, каждая клетка, по аналогии с обычной шахматной нотацией имеет уникальную запись. Например, на горизонтали 11 есть только клетка “f11”, а вся горизонталь 7 на рисунке выше целиком занята чёрными пешками.

Ладья может перемещаться на произвольне количество шестиугольных клеток в любом из 6 направлений, как показано на иллюстрации ниже.

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

Формат ввода

Входные данные содержат координаты двух различных полей в формате, описанном в условии задачи. Гарантируется, что поля с такими обозначениями существуют на доске.

Формат вывода

Выведите одно число — количество дойти ладьёй с первого поля до второго на пустой доске ровно за два хода.

Пример 1

Ввод Вывод

c4 h4

6

Пример 2

Ввод Вывод

a1 a2

5

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
gramma116
22.07.2020 02:30

Код программы:

#include <iostream>

#include <locale>

#include <time.h>

using namespace std;

void rand_mas(int *mas, int n) {

srand(time(NULL));

int a = -30, b = 30;

for (int i = 0; i < n; i++)

 mas[i] = a + rand() % (b - a);

}

int min_mas(int *mas, int n) {

int min = mas[0];

for (int i = 1; i < n; i++) {

 if (min > mas[i])

  min = mas[i];

}

return min;

}

int main()

{

setlocale(LC_ALL, "Russian");

int *A, N, min, *temp;

cout << "Введите количество элементов в массиве" << endl;

cin >> N;

A = new int[N];

rand_mas(A, N);

cout << "Исходный массив: " << endl;

for (int i = 0; i < N; i++)

 cout << A[i] << ' ';

min = min_mas(A, N);

temp = A;

A = new int[N + 1];

A[0] = min;

for (int i = 1, j = 0; i < N; i++) {

 if (temp[j] == min) {

  ++j;

  A[i] = temp[j];

  ++j;

  continue;

 }

 A[i] = temp[j];

 ++j;

}

cout << "\nИзмененный массив: " << endl;

for (int i = 0; i < N; i++)

 cout << A[i] << ' ';

return 0;

}

0,0(0 оценок)
Ответ:
TanyaVasutina
22.07.2020 02:30

int main()

{

using namespace std;

setlocale(LC_ALL, "ru");

srand(time(NULL));

int N = 10, M = 0;

int* parr_1 = new int[N];

int* parr_2 = new int[M];

cout << "Начальный массив: " << endl;

for (int i = 0; i < N; i++)

{

 parr_1[i] = getRandomNumber(-30, 30);

 cout << parr_1[i] << '\t';

 if (parr_1[i] < 0) push_pack(parr_2, M, parr_1[i]);

}

cout << "\n\nОтсортированный массив: " << endl;

bubbleSort(parr_1, N);

for (int i = 0; i < N; i++)

 cout << parr_1[i] << '\t';

cout << "\n\nМассив с отрицательными числами: " << endl;

for (int i = 0; i < M; i++)

 cout << parr_2[i] << '\t';

delete[] parr_1;

delete[] parr_2;

return 0;

}

void push_pack(int *&arr, int& size, const int val)

{

int *newArr = new int[size + 1];

for (int i = 0; i < size; i++)

 newArr[i] = arr[i];

newArr[size++] = val;

delete[] arr;

arr = newArr;

}

int getRandomNumber(const int min, const int max)

{

static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0);

return static_cast<int>(rand() * fraction * (max - min + 1) + min);

}

void bubbleSort(int* arr, const int size)

{

int temp = 0;

for (int i = 0; i < size - 1; i++)

{

 for (int j = 0; j < size - 1; j++)

 {

  if (arr[j + 1] < arr[j])

  {

   temp = arr[j + 1];

   arr[j + 1] = arr[j];

   arr[j] = temp;

  }

 }

}

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота