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

Слоны В мире животных проходит турнир по шахматам на доске n*m! В решающем матче встречаются коала и акула, а судит этот матч слон. Коала выигрывает, поэтому акула прибегла к нечестной тактике: она запугала слона своими зубами, и он разрешил ей поставить сколько угодно слонов на поле. Теперь акула доставляет на доску слонов. Она хочет, чтобы никакие два из поставленных ею слонов не били друг друга. Также она хочет, чтобы число слонов было максимально (ведь чем больше фигур - тем лучше).

Акула рассказала вам, на каких позициях находятся фигуры в данный момент (и дала вам достаточную мотивацию ей выбрать места для слонов!

Шахматный слон ходит по диагонали и не может перепрыгивать через другие фигуры. Слонов можно ставить только на пустые клетки.

Формат входных данных
В первой строке вводятся целые числа n, m и k (1 ≤ n, m, k ≤ 500) - размеры доски (доска размера n*m) и число фигур на доске.

В следующих k строках выводятся по 2 числа: xi и yi (1 ≤ xi ≤ n, 1 ≤ yi ≤ m) - координаты i-й фигуры.

Формат результата
В первой строке выведите x (0 ≤ x ≤ n*m) - максимальное число слонов, которое вы можете поставить так, чтобы они не били друг друга.

В следующих x строках выведите по 2 числа: xi и yi - координаты i-го слона, которого вы поставили. 1 ≤ ri ≤ n, 1 ≤ ci ≤ m.

Показать ответ
Ответ:
banana1106
banana1106
03.03.2022 09:21
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293

var
  x, y, a, b, k: integer;

begin
  k:=10000;
  repeat
    x:=k;
    a := 0; b := 0; y := 1;
    while x > 0 do
    begin
      if (x mod 10) mod 2 = 0
        then
        a := a * 10 + x mod 10
      else begin
        y := y * 10;
        b := b * 10 + x mod 10
      end;
      x := x div 10
    end;
    a := a * y + b;
    k := k + 1;
    until a = 26391;
    writeln(a:8, k-1:8); 
end.

 
0,0(0 оценок)
Ответ:
Evo4ka111
Evo4ka111
13.03.2023 05:07

55:5=11

365:11≈33(34) берём "34", чтобы перехлестнуть 365.

Так как 11-ый член является замыкающим (перехлёстывающим 365), тогда смотрим по ближайшим:

34*10=340 (340+34=374) - подходит, но это не максимум!

365 mod 10= 36, а это значит, что последующий член будет больше 365, а именно 395.

В задании сказано, что d должно быть максимальным, а "34" - это допустимое, но не максимально число, удовлетворяющее условию, даже минимальное (по результату).

Проверка:

34*11=374, значит, когда на экране выведется s:=340, n:=50, то, зайдя по следующему циклу, получится, что s:= 374, n:=55. На следующий цикл программа не пойдёт.

ответ: d=34. 

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