Вопрос задан 15.06.2018 в 21:35. Предмет Информатика. Спрашивает Урюпина Анастасия.

Спонсоры олимпиады предоставили оргкомитету 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
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лисунов Артём.

Program ryazantsev;
var n,k,i,b,sum:integer;
begin
readln(n,k);
sum:=trunc((1+n)/2*n); //Преобразование типа real к int, trunc можно безопасно использовать, т.к. сумма n членов арифметической последовательности целых чисел - всегда целое число
if sum mod k <> 0 then writeln(0)
else begin
for i:=1 to k do begin
b:=1;
while b<n/k do begin
write(i+b-1, ' ', n-i-b+2, ' ');
b:=b+k
end;
writeln()
end
end;
end.

Пример входных данных, при которых программа выведет ноль: 6 2


И ещё, задачка должна быть оценена явно больше, чем на пять баллов)

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос