トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
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文で場合を列挙してます。