Спонсоры олимпиады предоставили оргкомитету N призов для победителей олимпиады. Цены
Спонсоры олимпиады предоставили оргкомитету 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
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 lt;gt; 0 then writeln(0)
else begin
for i:=1 to k do begin
b:=1;
while blt;n/k do begin
write(i+b-1, ' ', n-i-b+2, ' ');
b:=b+k
end;
writeln()
end
end;
end.
Пример входных данных, при которых программка выведет ноль: 6 2
И ещё, задачка обязана быть оценена явно больше, чем на 5 баллов)
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.