Спонсоры олимпиады предоставили оргкомитету n призов для победителей олимпиады. стоимости всех призов различны и выражаются натуральными числами от 1 до n перед оргкомитетом возникла распределить эти призы между k участниками так, чтобы все участники получили одинаковое количество призов, и, кроме того, суммарные стоимости призов, полученных разными участниками, совпадали. гарантируется, что n делится на k входные данные на вход программы поступают два числа: n и k (1≤ выходные данные выведите k строк по n/k чисел в каждой. в каждое строке должны быть выведены стоимости призов, которые вручаются соответствующему участнику. если распределить призы требуемым образом невозможно, выведите одно число 0. примеры входные данные 8 2 выходные данные 1 4 6 7 2 3 8 5 входные данные 6 3 выходные данные 1 6 3 4 5 2
210
458
Ответы на вопрос:
//pascalabc.net//версия 3.3, сборка 1634 (14.02.2018) begin var (n, k) : = readinteger2('n,k-> '); var p : = arrgen(n, t -> t + 1); var m : = new integer[k, n div k]; var sum : = p.sum div k; for var i : = 0 to k - 1 do begin var m_sum : = sum; m[i, 0] : = p[0]; m_sum : = m_sum - m[i, 0]; p : = p[1: ]; for var j : = 1 to (n div k) - 1 do begin if m_sum - p.last > 0 then begin m[i, j] : = p.max; m_sum : = m_sum - p.max; p : = p[: p.indexmax]; end else begin if p.where(t -> t = m_sum).count = 1 then m[i, j] : = m_sum; p : = p.where(t -> t < > m_sum).toarray; end; end; end; var t : = true; for var i : = 0 to m.rowcount - 2 do if (m.row(i).sum < > m.row(i + 1).sum) or (p.length < > 0) then begin t : = false; break; end; if t then m.println else 0.println; end. пример(1): n,k-> 8 2 1 8 7 2 3 6 5 4 пример(2): n,k-> 6 3 1 6 2 5 3 4
Чтобы перевести десятичное число в другую систему надо делить его на основание, пока остаток не будет меньше основания. потом записываешь остатки в обратном порядке. 856/8=107 (остаток 0) 107/8=13 (остаток 3) 13/8=1 (остаток 5) 1 меньше чем 8, значит (остаток 1) теперь записываем остатки в обратном порядке 1530 это и есть восьмеричная запись исходного числа. остальное сам, ручками : )
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Skeletron12923.05.2023 08:27
-
Anasha1224.09.2021 05:11
-
kirikdementev25.11.2020 14:01
-
Scorpionoid15.03.2022 18:41
-
superbomber18.08.2021 16:09
-
kuekkukov15.02.2021 15:52
-
HelloyKiss12.03.2022 01:23
-
emilgasanov19.06.2021 14:04
-
Пес2415.04.2021 14:26
-
Aidanok119.02.2021 07:39
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.