Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

長方形

アイヅ放送協会の教育番組(ＡＨＫ教育)では、子ども向けの工作番組「あそんでつくろ」を放送しています。今日は棒で長方形を作る回ですが、用意した４本の棒を使って長方形ができるかを確かめたいと思います。ただし、棒は切ったり折ったりしてはいけません。

４本の棒の長さが与えられるので、それらすべてを辺とする長方形が作れるかどうか判定するプログラムを作成せよ。

Input

入力は以下の形式で与えられる。

e1 e2 e3 e4

入力は１行からなり、各棒の長さを表す整数 ei (1 ≤ ei ≤ 100) が与えられる。

Output

長方形を作成できる場合には「yes」を、作成できない場合には「no」を出力する。ただし、正方形は長方形の一種なので、正方形の場合でも「yes」と出力する。

Sample Input 1

1 1 3 4

Sample Output 1

no

Sample Input 2

1 1 2 2

Sample Output 2

yes

Sample Input 3

2 1 1 2

Sample Output 3

yes

Sample Input 4

4 4 4 10

Sample Output 4

no

Solution in JAVA (judge verdict: Accepted)

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<Integer, Integer> m = new HashMap<>();
        for (int i = 0; i < 4; i++) {
            int n = sc.nextInt();
            if (m.containsKey(n)) {
                m.put(n, m.get(n) + 1);
            } else {
                m.put(n, 1);
            }
        }
        int c = 0;
        for (Map.Entry<Integer, Integer> e : m.entrySet()) {
            if (e.getValue() == 4) {
                c = 2;
            }
            if (e.getValue() == 2) {
                c++;
            }
        }
        System.out.println(c == 2 ? "yes" : "no");
    }
}