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

Задать свой вопрос
1 ответ
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 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 баллов)
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт