Гидра (концепт для задачи)

Revision ru4, by Im9223372036854775808, 2025-12-03 11:05:29

Описание

Перед вами мифическая гидра: у неё n типов голов, пронумерованных от 1 до n (от «нижних» к «верхним»). При ударе по голове одного типа эта голова отрубается, но у гидры тут же возникают дополнительные головы, причём каждая голова создаёт копию голов других типов. Ваша задача — добить гидру, то есть добиться нулевого количества голов всех типов, затратя минимальное число ударов. Нулевым количеством считается тот момент, когда после сруба последней головы, другие головы не будут появляться.

Вход

На вход подаётся набор данных. Первая строка содержит число n — количество типов голов гидры (1 ≤ n ≤ 2000). Далее идёт строка, содержащая массив a из n элементов a_1 ... a_n (0 ≤ a_i ≤ 10^9) — начальные количества голов. Затем подаётся n строк по n целых чисел, задающих матрицу b.

Выход

Одно целое число — минимальное общее количество ударов, необходимое для уничтожения всех голов гидры. Если гидру невозможно убить, выведите -1

Примеры

Пример 1

Вход:

  • 3
  • 1 0 0
  • 0 1 2
  • 0 0 0
  • 0 0 0

Выход:

  • 4

Пример 2

Вход:

  • 5
  • 1 1 1 1 1
  • 0 1 0 0 0
  • 0 0 1 0 0
  • 0 0 0 1 0
  • 0 0 0 0 1
  • 0 0 0 0 0

Выход:

  • 31

Пример 3:

Вход:

  • 1
  • 1
  • 1

    Выход:

  • -1

Tags problem

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru6 Russian Im9223372036854775808 2025-12-04 11:37:05 38
en2 English Im9223372036854775808 2025-12-03 12:01:37 119
en1 English Im9223372036854775808 2025-12-03 11:45:17 1020 Initial revision for English translation
ru5 Russian Im9223372036854775808 2025-12-03 11:05:48 2 Мелкая правка: '- 1\n- 1\n#### Вых' -> '- 1\n- 1\n\n#### Вых'
ru4 Russian Im9223372036854775808 2025-12-03 11:05:29 12
ru3 Russian Im9223372036854775808 2025-12-03 11:04:58 44
ru2 Russian Im9223372036854775808 2025-12-02 22:51:10 10
ru1 Russian Im9223372036854775808 2025-12-02 18:57:19 1279 Первая редакция (опубликовано)