EduBrick

C. Назначения

2500 мс · 256 МБ · всё или ничего

Есть nn работ и nn исполнителей. Известна стоимость cijc_{ij} выполнения работы jj исполнителем ii. Раздайте каждому исполнителю ровно одну работу так, чтобы суммарная стоимость была наименьшей.

Классическая задача о назначениях. Полиномиальное решение существует (венгерский алгоритм за O(n3)O(n^3)), но при n≤20n \le 20 проще и надёжнее динамика по маскам.

Формат ввода

В первой строке nn (1≤n≤201 \le n \le 20). В каждой из следующих nn строк — nn чисел cijc_{ij} (0≤cij≤1090 \le c_{ij} \le 10^9).

Формат вывода

Выведите наименьшую суммарную стоимость.

Примеры

ввод
1
7
вывод
7
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.