Problem:
Score : 100 points

Problem Statement

You are given four digits N_1, N_2, N_3 and N_4. Determine if these can be arranged into the sequence of digits "1974".

Constraints

0 \leq N_1, N_2, N_3, N_4 \leq 9

N_1, N_2, N_3 and N_4 are integers.

Input

Input is given from Standard Input in the following format:

N_1 N_2 N_3 N_4

Output

If N_1, N_2, N_3 and N_4 can be arranged into the sequence of digits "1974", print YES; if they cannot, print NO.

Sample Input 1

1 7 9 4

Sample Output 1

YES

We can get 1974 by swapping N_2 and N_3.

Sample Input 2

1 9 7 4

Sample Output 2

YES

We already have 1974 before doing anything.

Sample Input 3

1 2 9 1

Sample Output 3

NO

Sample Input 4

4 9 0 8

Sample Output 4

NO

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <math.h>
using namespace std;
#define int long long
int gcd(int x, int y) {
	if (y == 0)return x;
	return gcd(y, x%y);
}
int lcm(int x, int y) {
	return x / gcd(x, y)*y;
}

int n[4];
bool ta[4] = {};

signed main() {
	cin >> n[0] >> n[1] >> n[2] >> n[3];
	for (int i = 0; i < 4; i++) {
		if (n[i] == 1)ta[0] = true;
		else if (n[i] == 4)ta[1] = true;
		else if (n[i] == 7)ta[2] = true;
		else if (n[i] == 9)ta[3] = true;
	}
	for (int i = 0; i < 4; i++) {
		if (ta[i] == false) {
			cout << "NO" << endl;
			return 0;
		}
	}
	cout << "YES" << endl;
	getchar(); getchar();
	return 0;
}