
Сдать решение задачи 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.

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

Ответ:
program abc;
var n,m,k:int64; a:array [0..210] of int64;
begin
assign(input,'collection.in');
assign(output,'collection.out');
readLn(n,m,k);
for i:int64:=0 to n-1 do
for j:int64:=0 to m-1 do Inc(a[(i+j) mod k]);
for i:int64:=0 to k-1 do write(a[i],' ');
end.
Объяснение:



Для решения данной задачи, вам нужно определить количество клеток каждого цвета на шахматной доске размера N × M.
Каждая клетка с координатами (i, j) имеет цвет (i + j) mod K. Вы можете использовать эту информацию для подсчета количества клеток каждого цвета. Пройдите по всем клеткам доски и увеличивайте счетчик для соответствующего цвета.
Вот алгоритм, который поможет вам решить эту задачу:
- Считайте входные данные: N, M, и K.
- Создайте массив размера K для хранения количества клеток каждого цвета и инициализируйте его нулями.
- Пройдите двумя вложенными циклами по всем клеткам доски:
- Для каждой клетки с координатами (i, j) определите её цвет как (i + j) mod K.
- Увеличьте счетчик для соответствующего цвета в массиве.
- Выведите результат, т.е. содержимое массива, разделяя числа пробелами.
Вот пример решения на языке Python:
pythondef main():
N, M, K = map(int, input().split())
colors_count = [0] * K
for i in range(N):
for j in range(M):
color = (i + j) % K
colors_count[color] += 1
print(*colors_count)
if __name__ == "__main__":
main()
Вы можете сохранить этот код в файл с именем "collection.py" и запустить его с помощью команды python collection.py
из командной строки. Вводите данные в формате "N M K" после запуска программы и получите результат в соответствии с условием задачи.


Похожие вопросы







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili