решить эту задачу на c++! Максимальное количество фигур
Широко известна задача о расстановке 8-ми ферзей на обычной шахматной доске размером 8 х 8 таким образом, чтобы ни один из ферзей не находился под боем любого другого. Матроскин хочет знать, какое максимальное количество фигур одного вида можно поставить на доске M х N таким образом, чтобы ни одна из фигур не находилась под боем любой другой. Для него эта задача оказалась почему-то сложной и он просит вас ему решить эту проблему.
Причем его интересуют не все случаи. Пешки ему кажутся почему-то довольно неинтересными, да и он по неизвестной причине не любит слонов. Поэтому он хочет только знать, сколько ладей, коней, ферзей или королей, могут быть размещены на одной доске таким образом.
Входные данные
Первая строка ввода содержит количество заданий в тесте T. Далее следует T строк, содержащих новое задание. Каждое задание описано в новой строке и начинается из одного символа (названия фигуры) из следующего набора R, N, Q и K, которые обозначают, соответственно, ладью, коня, ферзя или короля, далее через пробел заданы размеры доски.
Размеры доски не превышают 10, т.е. 4 <= M <= 10 и 4 <= N <= 10.
Выходные данные
Для каждого тестового случая вывести в отдельной строке ответ для заданной фигуры и указанных размеров доски.
Входные данные #1
2
R 6 7
N 8 8
Выходные данные #1
6
32
var x: array[1..nx, 1..nx] of integer;z:array[1..nx*2] of integer;
i, j, k,n,r,t: integer;
begin
Writeln('Введите размер матрицы n');Read(n);
for i := 1 to n do begin
for j := 1 to n do begin
Read(k);x[i, j] := k; end;end;
Writeln('Исходный массив');
for i := 1 to n do begin
for j := 1 to n do begin
Write(x[i, j]:4);
if x[i, j]>0 then begin t:=t+1; z[t]:=x[i, j];end;
end;
Writeln; end;
Writeln;Writeln('Одномерный массив');
for j := 1 to t do
Write(z[j]:4);
end.
begin
var n:=ReadInteger('Количество элементов в массиве: ');
var a:=ArrRandom(n,-50,50);
a.Println(',');
Writeln('Четные элементы: ');
var i:=1;
while i<n do begin Write(a[i],' '); Inc(i,2) end;
Writeln;
Writeln('Нечетные элементы: ');
i:=0;
while i<n-1 do begin Write(a[i],' '); Inc(i,2) end;
Writeln
end.
Тестовое решение:
Количество элементов в массиве: 10
15,-18,-29,-25,46,21,-8,-17,-9,15
Четные элементы:
-18 -25 21 -17 15
Нечетные элементы:
15 -29 46 -8 -9