Problem:
J: 都 (City)

サンタはある都にプレゼントを届けることにした。

この都は南北 $H$ 区画 × 東西 $W$ 区画に分けられた長方形の形をしており、各区画にプレゼントを届ける家が 1 つずつある。

北から数えて $X$ 番目、西から数えて $Y$ 番目の区画を $(X, Y)$ で表す。

サンタは次の条件で移動する。

はじめに区画 $(S, T)$ に降り、この場所からスタートする。

1 回の移動で東西南北に隣り合う区画に移動でき、街の外には移動できない。

1 度訪ねた区画には、2 度と入らない。

サンタが都にあるすべての家を訪ねることができるか判定せよ。

入力

$H, W, S, T$が空白区切りで与えられる。

出力

サンタが都にあるすべての家を訪ねられる場合は "Yes"、そうでない場合は "No" と出力せよ。

制約

$H, W$ は $2$ 以上 $1 \ 000 \ 000 \ 000$ 以下の整数

$S$ は $1$ 以上 $H$ 以下の整数

$T$ は $1$ 以上 $W$ 以下の整数

入力例1

4 5 2 3

出力例1

Yes

例えば、図の行き方をすれば良い。

入力例2

3 3 1 2

出力例2

No

Solution in C# (judge verdict: Accepted)

using System;
using System.Linq;

namespace J
{
    class Program
    {
        static void Main(string[] args)
        {
            long[] x = Console.ReadLine().Split().Select(long.Parse).ToArray();
            if (Math.Min(x[0], x[1]) == 1)
            {
                long a = Math.Max(x[2], x[3]);
                Console.WriteLine(a == 1 || a == Math.Max(x[0], x[1]) ? "Yes" : "No");
            }
            else
            {
                if (x[0] % 2 == 1 && x[1] % 2 == 1)
                {
                    Console.WriteLine(x[2] % 2 == x[3] % 2 ? "Yes" : "No");
                }
                else Console.WriteLine("Yes");
            }
        }
    }
}