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

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


 

Простой путь

(Время: 5 сек. Память: 512 Мб Сложность: 67%)

Дано поле размером N×M, клетки которого раскрашены в белый и чёрный цвет. По клеткам с белым цветом можно свободно перемещаться, а по чёрным клеткам перемещение невозможно.

Требуется определить: существует ли простой путь из клетки (r1,c1) в клетку (r2,c2). Известно, что стартовая клетка всегда находится не ниже и не правее, чем конечная. Под простым путем будем понимать непрерывный маршрут от одной клетки к другой, представляющий собой ломаную с не более чем двумя изгибами. Перемещаться можно только вправо или вниз.

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

Первая строка входного файла INPUT.TXT содержит два целых числа N и M – размеры поля (1 ≤ N×M ≤ 106). В следующих N строках идет описание поля. Каждая строка состоит из нулей и единиц и имеет длину M. Единица в r-й строке на c-й позиции означает, что в клетке с координатами (r,c) находится белая клетка, а ноль обозначает чёрную клетку.

В следующей строке записано целое число Q – количество запросов (1 ≤ Q ≤ 105). Каждая из следующих Q строк содержит данные запроса в формате r1 c1 r2 c2 (1 ≤ r1 ≤ r2 ≤ N, 1 ≤ c1 ≤ c2 ≤ M). Данная строка описывает маршрут из клетки (r1,c1) в клетку (r2,c2).

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

В выходной файл OUTPUT.TXT выведите непрерывную последовательность из Q цифр, где i-я цифра равна единице, если для i-го запроса во входных данных существует простой путь, либо нулю, если простого пути нет.

Пример

INPUT.TXTOUTPUT.TXT
16 7
1110010
1010010
1011110
0100100
0100110
0111000
8
1 1 3 6
1 2 4 5
4 2 4 2
1 6 5 6
2 4 3 4
2 3 2 6
3 3 5 5
3 3 5 6
10100011

Система оценки

Решения, работающие только для N×M ≤ 2500 и Q ≤ 50, будут оцениваться в 50 баллов.

Решения, работающие только для N×M ≤ 250 000 и Q ≤ 50 000, будут оцениваться в 80 баллов.

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

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


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 ЕГЭ по информатике
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2005 / 2006
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014 7-8 классы
 2013 / 2014 9-11 классы
 2014 / 2015 7-8 классы
 2014 / 2015 9-11 классы
 2015 / 2016 7-8 классы
 2015 / 2016 9-11 классы
 2016 / 2017 7-8 классы
 2016 / 2017 9-11 классы
 2017 / 2018 7-8 классы
 2017 / 2018 9-11 классы
 2018 / 2019 7-8 классы
 2018 / 2019 9-11 классы
 2019 / 2020 7-8 классы
 2019 / 2020 9-11 классы
 2020 / 2021 7-8 классы
 2020 / 2021 9-11 классы
 2021 / 2022 7-8 классы
 2021 / 2022 9-11 классы
 2022 / 2023 7-8 классы
 2022 / 2023 9-11 классы
 2023 / 2024 7-8 классы
 2023 / 2024 9-11 классы
 2024 / 2025 7-8 классы
 2024 / 2025 9-11 классы
 A. Капитал
 B. Шаблон-палиндром
 C. Делители
 D. Сумма
 E. Простой путь
 F. Города и дороги

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