В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
MASTER10011
MASTER10011
30.11.2022 23:26 •  Информатика

решить эту задачу на 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

Показать ответ
Ответ:
nazar221
nazar221
07.06.2022 00:42
 const nx = 20;
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.
0,0(0 оценок)
Ответ:
Tolganay11
Tolganay11
05.04.2022 04:43
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота