Пусть шахматная доска 8x8 будет представлена любыми двумя различными значениями, одно из которых будет пустым квадратом, а другое - королевой. В следующих примерах я использую 0 в качестве пустых квадратов и 1 в качестве королев. Например:
дан кем-то
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Рассмотрим количество пар королев, которые атакуют, каждая из которых находится на расстоянии не менее одного квадрата (как напоминание, королевы атакуют ортогонально и по диагонали). В приведенном выше примере на следующей невероятной уродливой диаграмме все эти пары показаны в виде стрелок.
Выше 43 пар дают следующий контрольный пример:
Input:
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Output: 43
Вызов
Напишите программу, которая, учитывая состояние платы, представленное двумя различными значениями, выводит количество пар королев, которые атакуют друг друга, по крайней мере, с одним квадратом между ними.
- Вы можете вводить в любом удобном для вас формате, который использует два значения для представления пустых квадратов и королев, например, строку размером 64 ". Для пустых квадратов и" Q "для королев по строкам снизу вверх, 8x8 матрица логических значений, список целых чисел 0 и 1 и т. д., если это объясняется в вашем решении
- Выход является целым числом
- Применяются стандартные методы ввода / вывода и запрещены стандартные лазейки
- Это код гольф, поэтому самый короткий ответ в байтах выигрывает
Тестовые случаи:
Используя формат 0 и 1, где 0 - пустые квадраты, а 1 - королева:
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 0
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 0
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 1
Input:
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0
Output: 10
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 4
Input:
1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 11