0184. Чёрно-белый король

Input file name: input.txt
Output file name: output.txt
Time limit: 250 ms
Memory limit: 16 megabytes

На шахматной доске NхN осталось три фигуры. Черный король, белый и черно-белый. Для нас черно-белый король непривычная фигура, так как он невидимый. Черный и белый король решили заключить договор и объединиться против черно-белого (они его не видят, но знают, что он где-то рядом, на доске). Для того, что бы реализовать задуманное им необходимо встретиться, что значит оказаться на соседних клетках (в общем случае у каждой клетки 8 соседей). Черно-белый король хочет им помешать. Для этого он должен перехватить одного из королей до того, как они встретятся, то есть атаковать его (пойти на клетку противника). Если противник сходит на клетку черно-белого короля ничего страшного не произойдет (никто никого не ⌠убьет■). Ваша задача узнать, есть ли у него шансы на победу. Учтите, что черным и белым королем была выработана стратегия, в соответствии с которой, они выбрали один из кратчайших путей. Помните, что они не видят черно-белого короля. У черно-белого короля тоже есть стратегия: он всегда передвигается так, что любой отрезок его пути нельзя улучшить по длине (скажем зигзагами он ходить не может).

В случае положительного ответа (то есть при ненулевой вероятности победы черно-белого короля) найдите наименьшее число ходов, необходимымых для вероятной победы. Иначе выведите наименьшее суммарное количество ходов белого и черного короля необходимых для встречи. Помните порядок ходов: белый король, черный, черно-белый. Любой король ходит на одну из 8 соседних клеток.

Замечание: длиной пути короля здесь называем сделанное количество ходов.

Формат входного файла

В первой строке записано число N (2 ≤ N ≤ 106). Во второй строке пара чисел P1, Q1 (0 < P1,Q1 < N+1) - координаты черного короля, в третьей записаны P2, Q2 (0 < P2,Q2 < N+1) - координаты белого короля. В четвертой строке парой чисел P3, Q3 (0 < P3,Q3 < N+1) задана позиция черно-белого короля. Все позиции различны.

Формат выходного файла

Выведите в первой строке "YES" если ответ положителен и "NO" в противном случае. Во второй строке выведите число, количественный ответ поставленной задачи.

Пример:

input.txtoutput.txt
5 1 1 5 3 2 3 YES 1


Source: Petrozavodsk Winter 2003. SaratovSU #3 Training Contest, Wednesday, February 05

Discuss       Submit a solution



Printable version