Problem:
﻿Score: 100 points

Problem Statement

In AtCoder city, there are five antennas standing in a straight line. They are called Antenna A, B, C, D and E from west to east, and their coordinates are a, b, c, d and e, respectively.

Two antennas can communicate directly if the distance between them is k or less, and they cannot if the distance is greater than k.

Determine if there exists a pair of antennas that cannot communicate directly.

Here, assume that the distance between two antennas at coordinates p and q (p < q) is q - p.

Constraints

a, b, c, d, e and k are integers between 0 and 123 (inclusive).

a < b < c < d < e

Input

Input is given from Standard Input in the following format:

a
b
c
d
e
k

Output

Print :( if there exists a pair of antennas that cannot communicate directly, and print Yay! if there is no such pair.

Sample Input 1

1
2
4
8
9
15

Sample Output 1

Yay!

In this case, there is no pair of antennas that cannot communicate directly, because:

the distance between A and B is 2 - 1 = 1

the distance between A and C is 4 - 1 = 3

the distance between A and D is 8 - 1 = 7

the distance between A and E is 9 - 1 = 8

the distance between B and C is 4 - 2 = 2

the distance between B and D is 8 - 2 = 6

the distance between B and E is 9 - 2 = 7

the distance between C and D is 8 - 4 = 4

the distance between C and E is 9 - 4 = 5

the distance between D and E is 9 - 8 = 1

and none of them is greater than 15. Thus, the correct output is Yay!.

Sample Input 2

15
18
26
35
36
18

Sample Output 2

:(

In this case, the distance between antennas A and D is 35 - 15 = 20 and exceeds 18, so they cannot communicate directly.
Thus, the correct output is :(.

Solution in C# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using static System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        //入力処理
        int[] input = new int[5];
        for (int i = 0; i < 5; i++)
        {
            input[i] = int.Parse(ReadLine());
        }

        //最小値の位置
        int minIndex = 0;
        //最小値(の候補)
        int min = 10;
        for (int i = 0; i < 5; i++)
        {
            //余り＝1の位を計算
            int amari = input[i] % 10;
            //余りが0の場合は適さない。余りがそれ以外で「暫定最小値」
            //より小さければ最小値候補を更新
            if (amari != 0 && amari < min)
            {
                min = amari;
                minIndex = i;
            }
        }

        //答え用変数
        int result = 0;
        //実際に合計を計算する。
        for (int i = 0; i < 5; i++)
        {
            //最小値の場合、最後にオーダーするので次の10の倍数の
            //時刻を待つ必要はないのでそのまま足す
            if (i == minIndex)
            {
                result += input[i];
            }
            //10で割り切れる数ならば切り上げを行わない
            else if (input[i] % 10 == 0)
            {
                result += input[i];
            }
            //それ以外なら切り上げて足す
            else
            {
                result += input[i] / 10 * 10 + 10;
            }
        }
        //答えの表示
        WriteLine(result);
        //待機(デバッグ用)
        ReadKey();
    }
}