• Предмет: Информатика
  • Автор: kolip48
  • Вопрос задан 11 месяцев назад

Сдать решение задачи D-Цветные клетки
Имя входного файла: collection.in или стандартный поток ввода
Имя выходного файла: collection.out или стандартный поток вывода
Ограничение времени: 1 с
Ограничение памяти: 256M
Цветные клетки

Чемпион по межгалактическим шахматам Гарик Проспалов очень любит коллекционировать шахматные доски.

Сегодня он купил себе очередную шахматную доску размера N × M, состоящую из клеток K цветов от 0 до K - 1. То есть, клетка, стоящая в i-й строке и j-м столбце имеет цвет (i + j) mod K (в данном случае mod - остаток от деления). Строки и столбцы нумеруются с 0. Для того, чтобы внести эту доску в коллекцию, Гарик должен составить её статистику. А именно, он должен для каждого цвета от 0 до K - 1 записать, какое количество клеток покрашено в этот цвет. Так как размер доски может быть очень большой, то он попросил вас составить статистику данной доски.

Напишите программу, которая позволит ему решить эту весьма непростую задачу.
Формат входных данных

Вводятся три целых числа N, M, K (1 ≤ N, M ≤ 109, 1 ≤ K ≤ 2 · 105) - размеры доски и количество цветов соответственно.
Формат результата

Выведите через пробел K целых чисел, где i-е число обозначает количество клеток, покрашенных в i-й цвет (i от 0 до K - 1).
Примеры
Входные данные

8
8
2

Результат работы

32 32

Входные данные

5
5
4

Результат работы

7 6 6 6

Примечания

Первый пример соответствует стандартной шахматной доске.

Второй пример приведён на рисунке ниже.

Для работы с большими целыми числами в этой задаче следует использовать 64-битный тип данных. В языке Pascal предусмотрен тип int64, а в C++ - тип long long.
На любом языке СРОЧНО


lmoisa: решил?

Ответы

Ответ дал: Аноним
6

Ответ:

Язык п.-Pascal ABC

var

 n, m, k, i, j, t: integer;  

 a: array [1..100, 1..100] of integer;  

 b: array [1..100] of integer;

begin

 readln(n, m, k);  

 for i := 1 to n do  

   for j := 1 to m do  

     a[i, j] := (i + j) mod k;  

 for t := 1 to k do  

 begin

   for i := 1 to n do  

     for j := 1 to m do  

       if (not ((t - 1) <> a[i, j])) then

         b[t] := b[t] + 1;

   write(b[t]:3);  

 end;

end.

Объяснение:

можно было и побольше баллов дать, все таки это самое сложное из заданий Т-Т...

Вас заинтересует