private async void ComputeDynamic(IEnumerable <int> digits, float valueToCalculate)
        {
            DynamicAlgorithm algorithm = new DynamicAlgorithm(digits);
            var watch  = System.Diagnostics.Stopwatch.StartNew();
            var result = await Task.Run(() =>
            {
                return(algorithm.CalculateResult(valueToCalculate));
            });

            watch.Stop();

            if (viewModel.Time)
            {
                viewModel.ExeTimeDynamic = $"{watch.Elapsed.TotalMilliseconds.ToString()}ms";
            }

            listDynamic.Items.Clear();
            if (result != null)
            {
                foreach (var r in result)
                {
                    var item = new ListBoxItem();
                    item.Content = $"{r.Value} x {r.Key}";
                    listDynamic.Items.Add(item);
                }

                DynamicAlgorithm greedyAlg = (DynamicAlgorithm)algorithm;


                Debug.WriteLine($"Arrays for input: {valueToCalculate}");
                Debug.WriteLine("----------------------------------");
                for (int i = 1; i < greedyAlg.oArray.Length; i++)
                {
                    Debug.WriteLine($"amount: {i} -> o:{greedyAlg.oArray[i]}   s:{greedyAlg.sArray[i]}  ({greedyAlg.coinArray[greedyAlg.sArray[i]]})");
                }
            }
            else
            {
                var item = new ListBoxItem();
                item.Content = "Cannot solve";
                listDynamic.Items.Add(item);
            }
        }
        void Button_Click(object sender, RoutedEventArgs e)
        {
            if (!CheckInputData())
            {
                return;
            }

            PrepareSetofItems();

            var sack        = new Sack(_W, SetOfItems);
            var brutalForce = new BrutalForceAlgorithm(sack);
            var greedy      = new GreedyAlgorithm(sack);
            var dynamic     = new DynamicAlgorithm(sack);

            ClearItems();
            if (cbBF.IsChecked != null && cbBF.IsChecked.Value)
            {
                Compute(brutalForce);
            }
            Compute(greedy);
            Compute(dynamic);
        }