Input file name: standard input
Output file name: standard output
Time limit: 3 s
Memory limit: 256 MB
В данной задаче необходимо реализовать итерационный алгоритм для решения задачи квадратичного программирования.
В задаче дана матрица A, вектор b, вектор c и симметричная положительно полуопределенная матрица D. Также вам известен опорный план {x, Jоп, J*}.
Необходимо вывести оптимальный план для заданных соотношений:
Ax = b, x ≥ 0
c′x + 1/2x′Dx → min
В первой строке входных данных находится два целых числа m, n, k (1 ≤ m ≤ k ≤ n ≤ 100) — размер матрицы A, m строк по n столбцов, а также k - количество индексов расширенного базиса.
В следующих m строках задано по n целых чисел aij (−500 ≤ aij ≤ 500) — значения элементов матрицы A.
В следующей строке задано m целых чисел bi (−500 ≤ bi ≤ 500) — значения элементов вектора b.
В следующей строке задано m целых чисел ci (−500 ≤ ci ≤ 500) — значения элементов вектора c.
В следующих n строках задано по n целых чисел dij (−500 ≤ dij ≤ 500) — значения элементов матрицы D.
В следующей строке задано n дробных чисел xi (0 ≤ xi ≤ 500) — значения элементов плана x.
В следующей строке задано m целых чисел jопi (1 ≤ jопi ≤ n) — значения индексов опорного базиса.
В следующей строке задано k целых чисел ji (1 ≤ ji ≤ n) — значения индексов расширенного базиса.
В первой строке выходных данных необходимо вывести следующее:
Если задача не ограничена выведите "Unbounded"
Иначе выведите "Bounded"
На второй строке выходных данных, в случае если ответ существует, необходимо вывести n дробных чисел через пробел — значения вектора x.
Абсолютная или относительная погрешность не должны превышать 10−6.