Problem:
大当たり!

あいづ学園大学附属高校の大阿足あたる君は、スロットマシーンで遊ぶことにしました。

このマシーンは、メダルを投入すると、3 つのリールが回転を始め、各リールが自動的に止まります。通常の1ゲーム(通常ゲーム)は 3 枚のメダルを投入し、図柄が揃うと、その図柄に応じて次のとおりメダルが得られます。

図柄の揃い方によっては特別なサービスが開始されます。 7 の図柄が 3 つ揃うとビッグボーナスが始まり、ボーナスゲームを 5 ゲーム行うことができます。また、BAR の図柄が 3 つ揃うとレギュラーボーナスが始まり、ボーナスゲームを 3 ゲーム行うことができます。

スターの図柄が 3 つ揃うと無料ゲームが開始され、メダルを得ることはできませんが、次のゲームをメダルの投入なく始めることができます。

ボーナスゲーム中は 1 ゲームあたり 2 枚のメダルを投入すると、自動でブドウの図柄が 3 つ揃い、メダルを 15 枚得ることができます。

大阿足君は 100 枚のメダルを持ってマシーンで遊び始めました。しばらく遊び、通常ゲームになった状態で終了しました。手元に残ったメダルは何枚となったでしょうか。

プレイ情報を入力とし、手元に残ったメダルの数を出力するプログラムを作成して下さい。 プレイ情報として、ビッグボーナスの回数 b、レギュラーボーナスの回数 r、通常ゲーム中にブドウが揃った回数 g、チェリーが揃った回数 c、スターが揃った回数 s、総ゲーム数 t が与えられます。

なお、t にはボーナスゲームの回数を含みます。また、メダルはゲームの途中になくなることはありません。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロむっつの行で示されます。
各データセットは以下の形式で与えられます。

b r g c s t

b, r, g, c, s はそれぞれ 0 以上 200 以下の整数、t は 1000 以下の整数です。

データセットの数は 120 を超えません。

Output

入力データセットごとに、手元に残ったメダルの枚数を１行に出力します。

Sample Input

3 2 30 3 26 226
9 0 18 3 20 118
5 5 12 2 15 203
7 4 19 2 22 197
7 4 24 4 17 209
0 0 0 0 0 0

Output for the Sample Input

127
793
414
629
617

Solution in C# (judge verdict: Accepted)

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

namespace _0229
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                int[] vs = RArInt();
                if (vs.Sum() == 0) break;

                int b = vs[0]; int r = vs[1]; int g = vs[2]; int c = vs[3]; int s = vs[4]; int t = vs[5];

                int expense = (t - s - b * 5 - r * 3) * 3 + (b * 5 + r * 3) * 2;
                int income = (b * 5 + b) * 15 + (r * 3 + r) * 15 + g * 7 + c * 2;
                Console.WriteLine(100 - expense + income);
            }

        }
        static string RSt() { return Console.ReadLine(); }
        static int RInt() { return int.Parse(Console.ReadLine().Trim()); }
        static long RLong() { return long.Parse(Console.ReadLine().Trim()); }
        static double RDouble() { return double.Parse(Console.ReadLine()); }
        static string[] RArSt(char sep = ' ') { return Console.ReadLine().Trim().Split(sep); }
        static int[] RArInt(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Trim().Split(sep), e => int.Parse(e)); }
        static long[] RArLong(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Trim().Split(sep), e => long.Parse(e)); }
        static double[] RArDouble(char sep = ' ') { return Array.ConvertAll(Console.ReadLine().Trim().Split(sep), e => double.Parse(e)); }
        static string WAr<T>(IEnumerable<T> array, string sep = " ") { return string.Join(sep, array.Select(x => x.ToString()).ToArray()); }
    }
}