Logo
(追記) (追記ここまで)

30835번 - Шустрая черепашка 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB21150.000%

문제

Пафнутий и его друзья — большие любители разнообразных настольных игр. Особенно им нравятся игры, требующие как можно быстрее производить в уме непростые вычисления, поэтому абсолютным хитом их вечерних посиделок в аудиториях НУОП (Неизвестного университета олимпиадного программирования) стала игра «Шустрая черепашка». В комплект игры входят:

  • Клетчатое поле из N рядов по M клеток. Каждая клетка поля либо свободна, либо блокирована для перемещения.
  • Q игровых карточек. Каждая карточка содержит описание множества стартовых клеток A, множества дополнительно блокируемых клеток B и множества конечных клеток C. Множества A, B и C непусты, попарно не пересекаются и состоят из свободных клеток.
  • Маленькая фишка в форме черепашки.

Правила игры очень просты. Игроки последовательно разыгрывают игровые карточки. Как только открывается очередная карточка, игрокам необходимо вычислить, сколько существует хороших троек клеток (ai, bj, ck), где ai ∈ A, bj ∈ B, ck ∈ C. Тройка клеток называется хорошей, если можно провести черепашку из стартовой клетки ai в конечную клетку ck, не посещая при этом клетку bj. На перемещение черепашки наложено три условия:

  1. Черепашка имеет право перемещаться только вниз и вправо в пределах поля.
  2. Находиться на блокированных клетках запрещено.
  3. Клетка bj также блокируется для перемещения.

Так как таблицу с правильными ответами создатели не включили в комплект, в пылу игры постоянно возникают споры о правильности того или иного значения. Для установления истины ребята попросили вас посчитать ответы для данного комплекта.

입력

Первая строка входного файла содержит два целых числа N и M (1 ≤ N, M ≤ 150) — количество строк и столбцов игрового поля.

Следующие N строк по M символов описывают игровое поле в порядке следования сверху вниз, слева направо. Символ ‘.’ соответствует свободной клетке, а ‘#’ — занятой. Строки нумеруются от 1 до N, столбцы — от 1 до M.

Следующая строка содержит целое число Q (1 ≤ Q ≤ 100 000) — количество игровых карточек.

Далее следуют Q блоков, описывающих карточки. Каждый блок состоит из трех строк, описывающих множества A, B и C соответственно. Первое число описания определяет размер соответствующего множества, после чего перечисляются его клетки. Каждая клетка задается двумя числами — номером строки и номером столбца. Все клетки в описании различны. Смотрите комментарии к примеру для лучшего понимания формата входных данных.

Гарантируется, что все множества непусты, все клетки всех множеств являются свободными и никакая клетка не принадлежит более чем одному множеству из какой-то карточки.

Гарантируется, что суммарный размер всех множеств на всех игровых карточках не превосходит 300 000, а именно: Σ(|Ai| + |Bi| + |Ci|) ≤ 300 000.

Дополнительно гарантируется, что суммарное количество всех троек (и хороших, и нет) по всем карточкам не превосходит 2 · 107: Σ(|Ai| · |Bi| · |Ci|) = Qtotal ≤ 2 · 107.

출력

В выходной файл выведите ровно Q чисел по одному на строке — правильные ответы на карточки в порядке их следования во входном файле.

제한

예제 입력 1

5 6
..##..
....#.
.#.#..
.#...#
..#...
2
1 1 1
3 2 1 2 3 4 3
1 5 6
2 1 2 2 1
2 3 1 3 3
2 5 1 5 6

예제 출력 1

1
3

노트

В приведенном примере игровой комплект содержит две карточки.

Во всех тройках первой карточки черепашка стартует в верхнем левом углу и финиширует в правом нижнем. Несложно видеть, что это возможно сделать, только если из трех элементов множества B блокируется первая клетка второй строки, то есть хорошей тройкой является (1, 1) − (2, 1) − (5, 6).

На второй карточке хорошими являются тройки: (1, 2)−(3, 1)−(5, 6), (2, 1)−(3, 1)−(5, 6), (2, 1) − (3, 1) − (5, 1).

출처

Olympiad > Moscow Open Olympiad in Informatics > Moscow Open Olympiad in Informatics 2013-14 > Day 1 C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /