トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-038-B ディスプレイ

■■■問題■■■

高橋くんは2つのディスプレイを買いました。
片方のディスプレイのサイズは高さH1mm、幅W1mmで、
もう片方のサイズは高さH2mm、幅W2mmです。

ディスプレイを机に横に並べて置くことになりました。
それぞれのディスプレイは、そのまま置くか、90度回転させて置くかのどちらかです。

2つのディスプレイを机に横に並べて置き、高さを揃えることができるか判定してください。

■■■入力■■■

H1 W1
H2 W2

●1 <= H1,W1,H2,W2 <= 10万
●H1,W1,H2,W2は全て整数である

■■■出力■■■

高さを揃えることができるときYES、そうでないときNOと1行に出力せよ。


C#のソース

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "Input1";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("1080 1920");
            WillReturn.Add("1080 1920");
            //YES
            //どちらも回転させないまま置けば、高さ1080mmで揃います
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("1080 1920");
            WillReturn.Add("1920 1080");
            //YES
            //例えば、2つ目のディスプレイを90度回転させると、
            //高さ1080mmとなり、2つのディスプレイは高さ1080mmで揃います。
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("334 668");
            WillReturn.Add("668 1002");
            //YES
        }
        else if (InputPattern == "Input4") {
            WillReturn.Add("100 200");
            WillReturn.Add("300 150");
            //NO
        }
        else if (InputPattern == "Input5") {
            WillReturn.Add("120 120");
            WillReturn.Add("240 240");
            //NO
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();

        int[] wkArr = { };
        Action<string> SplitAct = pStr =>
            wkArr = pStr.Split(' ').Select(X => int.Parse(X)).ToArray();

        SplitAct(InputList[0]);
        int H1 = wkArr[0], W1 = wkArr[1];
        SplitAct(InputList[1]);
        int H2 = wkArr[0], W2 = wkArr[1];

        if (H1 == H2) Console.WriteLine("YES");
        else if (H1 == W2) Console.WriteLine("YES");
        else if (W1 == H2) Console.WriteLine("YES");
        else if (W1 == W2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }
}


解説

If文で場合を列挙してます。