Problem:
Score : 200 points

Problem Statement

Two children are playing tag on a number line. (In the game of tag, the child called "it" tries to catch the other child.) The child who is "it" is now at coordinate A, and he can travel the distance of V per second.
The other child is now at coordinate B, and she can travel the distance of W per second.

He can catch her when his coordinate is the same as hers.
Determine whether he can catch her within T seconds (including exactly T seconds later).
We assume that both children move optimally.

Constraints

-10^9 \leq A,B \leq 10^9

1 \leq V,W \leq 10^9

1 \leq T \leq 10^9

A \neq B

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A V
B W
T

Output

If "it" can catch the other child, print YES; otherwise, print NO.

Sample Input 1

1 2
3 1
3

Sample Output 1

YES

Sample Input 2

1 2
3 2
3

Sample Output 2

NO

Sample Input 3

1 2
3 3
3

Sample Output 3

NO

Solution in C# (.NET Core 3.1.201) (judge verdict: Accepted)

using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace debug
{
    class main
    {
        static void Main(string[] args)
        {
            //問題クラスを展開
            ProgramB a = new ProgramB();
            a.main();//実行する

        }

    }

    class ProgramA
    {
        public void main()
        {
            //入力
            string s = Console.ReadLine();

            //時間に換算して起きてる時間からk時間を除く
            Console.WriteLine(s.Substring(0,3));

        }
    }

    class ProgramB
    {
        public void main()
        {
            //入力
            string[] s1 = Console.ReadLine().Split(' ');
            long a = long.Parse(s1[0]);
            long v = long.Parse(s1[1]);
            string[] s2= Console.ReadLine().Split(' ');
            long b = long.Parse(s2[0]);
            long w = long.Parse(s2[1]);
            long t = long.Parse(Console.ReadLine());
            long temp = t * (v - w);

            if(w == v)
            {
                Console.WriteLine("NO");
                return;
            }

            //?はD、それ以外は普通に出す
            
            if (temp >= Math.Abs(a - b))
                Console.WriteLine("YES");
            else
                Console.WriteLine("NO");


        }
    }

    class ProgramC
    {
        public void main()
        {

            int n = int.Parse(Console.ReadLine());
            string[] a = Console.ReadLine().Split(' ');

            //n=0のときは例外処理
            if (n == 0)
            {
                if (a[0] == "1")
                    Console.WriteLine("1");
                else
                    Console.WriteLine("-1");
                return;
            }
            //0のときは0以外はダメ
            if (a[0] != "0")
            {
                Console.WriteLine("-1");
                return;
            }
            long[] num = new long[n + 1];
            long[] leave = new long[n + 1];
            num[0] = 1;
            leave[n] = long.Parse(a[n]);
            //深さiを含む後ろの根の数を数えておく
            for (int i = n - 1; i >= 0; i--)
                leave[i] = leave[i + 1] + long.Parse(a[i]);
            //前から根の数を決める（ただし、最大は後ろに考えるべき根の数に限られる）
            for (int i = 1; i <= n; i++)
            {
                num[i] = Math.Min(2 * (num[i - 1] - long.Parse(a[i - 1])), leave[i]);
                //あり得る数が葉になる数より大きければあり得ない(n-1まで）
                if (i < n && num[i] <= long.Parse(a[i]))
                {
                    Console.WriteLine("-1");
                    return;
                }
                //最後は頭からの条件で満たさないならアウト
                if (i == n && num[i] < long.Parse(a[i]))
                {
                    Console.WriteLine("-1");
                    return;
                }
            }

            //答え出力
            long ans = 0;
            for (int i = 0; i <= n; i++)
                ans += num[i];

            Console.WriteLine(ans);
        }
    }
}