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

namespace AtCoder
{
    class Program
    {
        static int[] goals;

        static void Main(string[] args)
        {
            //[summary]C - Synthetic Kadomatsu
            var line = ReadLine();
            int n = line[0];

            //作りたい竹の長さを取得
            goals = new int[] { line[1], line[2], line[3] };

            //最初に与えられた竹
            var materials = ReadLines(n);

            //最初に与えられた竹を A,B,Cの材料,使わない のいずれかに当てはめたパターンを列挙
            var numStrs = GetBase4NumberStrings(n).ToList();

            int minMp = int.MaxValue;

            foreach(var numStr in numStrs)
            {
                //空のListを作成
                var bambooCombis = new List<List<int>>();

                for(int i = 0; i < 3; i++)
                {
                    bambooCombis.Add(new List<int>());
                }

                for(int i = 0; i < n; i++)
                {
                    if (numStr[i] != '3')
                    {
                        int index = GetIndex(numStr[i]);

                        bambooCombis[index].Add(materials[i]);
                    }
                }

                int mp = CalcMp(bambooCombis);

                if (mp < minMp)
                {
                    minMp = mp;
                }
            }

            Console.WriteLine(minMp);
        }

        static int CalcMp(List<List<int>> bambooCombis)
        {
            int sum = 0;
            int i = 0;

            foreach(var bamboos in bambooCombis)
            {
                if (bamboos.Count == 0)
                {
                    return int.MaxValue;
                }
                else
                {
                    int length = bamboos.Sum();
                    int mp = (bamboos.Count - 1) * 10;

                    mp += Math.Abs(goals[i] - length);
                    sum += mp;
                }

                i++;
            }

            return sum;
        }

        static int GetIndex(char numChar)
        {
            string s = numChar.ToString();
            return int.Parse(s);
        }

        static IEnumerable<string> GetBase4NumberStrings(int n)
        {
            //[summary]最初に与えられた竹を A,B,Cの材料,使わない のいずれかに当てはめる

            int count = (int)Math.Pow(4, n);

            string s = ConvertBaseNumber(count - 1, 4);
            int digit = s.Length;

            for(int i = 0; i < count; i++)
            {
                s = ConvertBaseNumber(i, 4);
                yield return s.PadLeft(digit, '0');
            }
        }

        static string ConvertBaseNumber(int sourceNum, int n)
        {
            //[summary]10進数の数字をN進数に変換
            //変換方法については、以下リンクの最下部を参照
            //http://manabi.matiralab.com/binary/

            var mods = new List<int>();
            int num = sourceNum;

            //元の数字が"n"で割れなくなるまで繰り返し
            while (num != 0 && num != 1)
            {
                mods.Add(num % n);
                num /= n;
            }

            //最後の商も入れる
            mods.Add(num);

            //記憶した数字の順番を入れ替える
            mods.Reverse();

            //連結した文字列の最初がゼロになることもあるので、削除
            mods = mods.SkipWhile(x => x == 0).ToList();

            //Listの値を結合
            return string.Join("", mods);
        }

        static List<int> ReadLine()
        {
            var line = Console.ReadLine().TrimEnd();
            var array = line.Split(' ');
            var numbers = new List<int>();

            foreach (var s in array)
            {
                int num = int.Parse(s);
                numbers.Add(num);
            }

            return numbers;
        }

        static List<int> ReadLines(int count = 0)
        {
            //[summary]コンソールの値を読み込む
            var list = new List<int>();

            //読み込む行数が未指定のときは、1行目の値を"count"とみなす
            if (count == 0)
            {
                string s = Console.ReadLine().TrimEnd();
                count = int.Parse(s);
            }

            for (int i = 0; i < count; i++)
            {
                string s = Console.ReadLine().TrimEnd();
                list.Add(int.Parse(s));
            }

            return list;
        }
    }
}

Measured memory_bytes: 22968