public KnapsackProcessor(XElement[] elements, int capacity)
        {
            _elements = elements;
            _capacity = capacity;
            _elementsCount = elements.Length;

            previousColumn = new int[capacity + 1];
            currentColumn = new int[capacity + 1];

            maxIndex = 0;
            maxValue = 0;

            Directory.CreateDirectory("./tempData");
        }
        private static void ParseInput(string filePath)
        {
            Stream str = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            using (var sr = new StreamReader(str))
            {
                string[] strings = sr.ReadLine().Split(' ');
                int N = Convert.ToInt32(strings.First());
                int K = Convert.ToInt32(strings.Last());

                XElement[] elements = new XElement[N];
                for (int i = 0; i < N; i++)
                {
                    string[] element = sr.ReadLine().Split(' ');
                    int val = Convert.ToInt32(element.First());
                    int weight = Convert.ToInt32(element.Last());
                    elements[i] = new XElement(val, weight);
                }

                _knapsackProcessor = new KnapsackProcessor(elements, K);
            }
            str.Close();
        }