Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

На уроке рисования

(Время: 2 сек. Память: 32 Мб Сложность: 59%)

В классе у Ани на уроке рисования учитель готовит большую новогоднюю стенгазету: каждый ученик должен принести один вырезанный фрагмент мозаики, чтобы потом все кусочки наклеить на общий плакат. Для этого учитель раздал детям необычные листы бумаги – каждый лист представляет собой прямоугольник из разноцветных клеток размером N × M клеток (цвет – натуральное число от 0 до 99). Каждый лист пронизан золотистыми косыми линиями, чтобы можно было отличить вертикальную и горизонтальную ориентации фрагментов.

Домашнее задание: из своего листа каждый ученик выбирает один прямоугольник любого размера и вырезает его строго по линиям клеток. Аня переживает, что кто-то может принести фрагмент, который окажется полностью таким же, как у неё: совпадёт не только размер вырезанного прямоугольника, но и вся раскраска – в каждой клетке на соответствующем месте будет тот же цвет. Аня хочет узнать, сколько различных прямоугольников вообще можно вырезать из данного листа.

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

Входной файл INPUT.TXT содержит в первой строке натуральное число T – количество уроков. Далее для каждого урока задаётся лист: в первой строке два натуральных числа N и M (1 ≤ N, M ≤ 100; 1 ≤ T ≤ 10), затем следуют N строк по M чисел в каждой – номера цветов клеток (от 0 до 99), разделённые пробелами.

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

В выходной файл OUTPUT.TXT для каждого урока с новой строки выведите количество различных прямоугольников, которые можно вырезать из соответствующего листа.

Пример

INPUT.TXTOUTPUT.TXT
12
2 2
1 9
9 9
3 4
2 0 2 6
2 0 2 6
2 0 2 6
7
27

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Разное 2
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Целочисленная арифметика 2
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 Занимательная математика 3
 A. Адресация - 2
 B. Адресация - 3
 C. Адресация - 1
 D. Городок 2
 E. Игра с друзьями - 2
 F. Исследование
 G. Преграда
 H. Задание с матрицей
 I. Киллер-судоку
 J. Бросок в кольцо
 K. Исследовательская группа
 L. Падающий шарик
 M. Палиндромные диапазоны 1
 N. Палиндромные диапазоны 2
 O. Манускрипт
 P. Минимальное преобразование
 Q. Коробки в контейнере
 R. Маяки
 S. Поймай бабочку
 T. Точки на окружностях
 U. Исполнитель 5
 V. Параллельные процессы 2
 W. Код активации криптомодуля
 X. На уроке рисования
 Y. Сбой в квантовом тахометре
 Z. Лаборатория

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru