М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Имра11111
Имра11111
03.05.2021 23:45 •  Информатика

25 !
вам необходимо найти для натурального числа a такое натуральное число x, не большее 10^9+9, что a*x - 1 делится на 10^9 + 9.

формат ввода
в первой строке записано число t, 1 ≤ t ≤ 10^5 - количество тестовых примеров. в каждой из следующих t строк записано натуральное число a, 1 ≤ a < 10^9 + 9.

формат вывода
для каждого числа a выведите в отдельной строке одно число - ответ на . ответ не должен превышать 10^9+9.

👇
Открыть все ответы
Ответ:
Winday31
Winday31
03.05.2021
Используем бэктрекинг (англ. backtracking - обратное прослеживание).
Необходимо оставить противнику 1 фишку с тем,  чтобы он был вынужден взять её и проиграть. Для этого надо самому иметь позицию, в которой имеется от 2 до 5 фишек (чтобы взяв допустимый 1-4 фишки, оставить одну).
Чтобы вынудить противника оставить 2-5 фишек, надо создать ему позицию с 6 фишками (6-1=5, 6-4=2).
Позицию с 6 фишками мы можем создать, имея 7-10 фишек.
Исходное количество фишек -  11. Если первый ход у противника, он забирает от 1 до 4 фишек и предоставляет нам как раз необходимые для выигрыша 7-10 фишек.
Итак, при первом ходе противника нашей стратегией будет оставить противнику шесть фишек, а затем одну.
Если первый ход наш, то при правильной игре противника выигрыш невозможен. При неправильной - стараться перейти к выигрышной стратегии (6 и 1 фишка).
4,7(21 оценок)
Ответ:
бэйба123
бэйба123
03.05.2021
Begin
var a: array [,] of integer := (
(1, 10, 100),
(1, 10, 200),
(1, 9, 100),
(1, 9, 100));

var max := integer.MinValue;
var countmax := 0;
var min := integer.MaxValue;
var countmin := 0;
var counter := 0;
for var j := 0 to a.GetLength(1) - 1 do
begin
counter += 1;
var c := 0;
for var i := 0 to a.GetLength(0) - 1 do
begin
c += a[i, j]
end;
if max < c then
begin
max := c;
countmax := counter;
end;
if min > c then
begin
min := c;
countmin := counter;
end;
end;
writeln('Столбик с наибольшей суммой - ', countmax);
writeln('Столбик с наименьшей суммой - ', countmin);
end.
4,7(78 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ