010. Шахматный конь

(Время - 1 сек., память - 16 Мб)

Шахматный коньВася решил научиться играть в шахматы. Он нашел книгу с записями партий и внимательно их изучает. Может быть, когда-нибудь Вася станет великим шахматистом, но пока он еще учится в начальной школе, и ему нелегко дается шахматная нотация. Больше всего трудностей у Васи вызывают ходы шахматного коня. Он попросил вас написать программу, которая сможет сообщить Васе, на какие клетки можно пойти конем с заданной клетки.

Вы, наверное, тоже знаете, что конь в шахматах всегда перемещается либо на две клетки по горизонтали и на одну по вертикали, либо на одну по горизонтали и на две по вертикали. Вертикали обозначаются маленькими латинскими буквами от a до h, а горизонтали - цифрами от 1 до 8. Любая клетка на шахматной доске обозначается буквой соответствующей вертикали и цифрой соответствующей горизонтали, например, c6 или e2.

Входные данные

В единственной строке входного файла input.txt записано 2 символа – координаты клетки, где стоит конь.

Выходные данные

В выходной файл output.txt нужно вывести в произвольном порядке выведите все координаты клеток, на которые за один ход может попасть конь, находящийся на заданной клетке.

Примеры

input.txt

output.txt

1

e2

c1
c3
d4
f4
g1

g3

2

a1

b3
c2

Разбор

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

Программа на Паскале

{Автор программы - А.В.Алексеев, дата написания - 14.05.2012}

var

  s : string;

  i, j, k, l : integer;

begin

  assign(input, 'input.txt'); reset(input);

  assign(output, 'output.txt'); rewrite(output);

  readln(s);

  k:=ord(s[1])+1-ord('a'); l:=ord(s[2])-48;

  for i:=1 to 8 do

    for j:=1 to 8 do

      if (abs(k-i)=2)and(abs(l-j)=1) or

         (abs(k-i)=1)and(abs(l-j)=2) then

           writeln(chr(i-1+ord('a'))+chr(j+48));

  close(output)

end.

Программа на С

 

Информация о задаче

Автор, источник

 

Олимпиада

Муниципальный этап олимпиады в Ханты-Мансийском АО-Югре, 2008-2009 уч. год, 1-й тур

Тематика

Задачи для начинающих

Примерная сложность

25%

Ссылки в Интернете

Условие, сдача решения – http://acmu.ru/index.asp?main=task&id_task=416

Наш сайт

Сдача решения –

Тесты – Rar

Задача подготовлена

Автор, дата –  Алексеев А.В., 14.05.2012