Problem:
電子レンジ (Microwave)

問題

JOI 君は食事の準備のため，A ℃の肉を電子レンジで B ℃まで温めようとしている．
肉は温度が 0 ℃未満のとき凍っている．
また，温度が 0 ℃より高いとき凍っていない．
温度がちょうど 0 ℃のときの肉の状態は，凍っている場合と，凍っていない場合の両方があり得る．

JOI 君は，肉の加熱にかかる時間は以下のようになると仮定して，肉を温めるのにかかる時間を見積もることにした．

肉が凍っていて，その温度が 0 ℃より小さいとき： C 秒で 1 ℃温まる．

肉が凍っていて，その温度がちょうど 0 ℃のとき： D 秒で肉が解凍され，凍っていない状態になる．

肉が凍っていないとき： E 秒で 1 ℃温まる．

この見積もりにおいて，肉を B ℃にするのに何秒かかるかを求めよ．

入力

入力は 5 行からなり，1 行に 1 個ずつ整数が書かれている．

1 行目には，もともとの肉の温度 A が書かれている．

2 行目には，目的の温度 B が書かれている．

3 行目には，凍った肉を 1 ℃温めるのにかかる時間 C が書かれている．

4 行目には，凍った肉を解凍するのにかかる時間 D が書かれている．

5 行目には，凍っていない肉を 1 ℃温めるのにかかる時間 E が書かれている．

もともとの温度 A は -100 以上 100 以下，目的の温度 B は 1 以上 100 以下であり，A ≠ 0 および A < B を満たす．

温めるのにかかる時間 C, D, E はすべて 1 以上 100 以下である．

出力

肉を B ℃にするのにかかる秒数を 1 行で出力せよ．

入出力例

入力例 1

-10
20
5
10
3

出力例 1

120

入力例 2

35
92
31
50
11

出力例 2

627

入出力例 1 では，もともとの肉は -10 ℃で凍っている．かかる時間は以下のようになる．

-10 ℃から 0 ℃まで温めるのに 5 × 10 = 50 秒．

0 ℃の肉を解凍するのに 10 秒．

0 ℃から 20 ℃まで温めるのに 3 × 20 = 60 秒．

したがって，かかる時間の合計は 120 秒である．

入出力例 2 では，もともとの肉は凍っていない．したがって，肉を 35 ℃から 92 ℃まで温めるのにかかる時間は 627 秒である．

情報オリンピック日本委員会作 『第 16 回日本情報オリンピック JOI 2016/2017 予選競技課題』

Solution in C# (judge verdict: Accepted)

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

namespace _0630
{
    public class Program

    {
        public static void Main(string[] args)
        {
            int a = ReadInt();
            int b = ReadInt();
            int c = ReadInt();
            int d = ReadInt();
            int e = ReadInt();
            Console.WriteLine(a > 0 ? (b - a) * e : b * e + d + (0 - a) * c);
        }

        static string ReadSt() { return Console.ReadLine(); }
        static int ReadInt() { return int.Parse(Console.ReadLine()); }
        static long ReadLong() { return long.Parse(Console.ReadLine()); }
        static double ReadDouble() { return double.Parse(Console.ReadLine()); }
        static string[] ReadStAr(char sep = ' ') { return Console.ReadLine().Split(sep); }
        static int[] ReadIntAr(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Split(sep), e => int.Parse(e)); }
        static long[] ReadLongAr(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Split(sep), e => long.Parse(e)); }
        static double[] ReadDoubleAr(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Split(sep), e => double.Parse(e)); }
        static string WriteAr(int[] array, string sep = " ") { return String.Join(sep, array.Select(x => x.ToString()).ToArray()); }
        static string WriteAr(double[] array, string sep = " ") { return String.Join(sep, array.Select(x => x.ToString()).ToArray()); }
        static string WriteAr(long[] array, string sep = " ") { return String.Join(sep, array.Select(x => x.ToString()).ToArray()); }

    }

}