AT_arc056_c [ARC056C] 部門分け
Description
[problemUrl]: https://atcoder.jp/contests/arc056/tasks/arc056_c
高橋くんのいる会社は$ N $人の社員からなる。社員$ i $と社員$ j $の間には、信頼度$ w_{i,j} $が定まっている。 おかげ様で会社はぐんぐん成長したため、$ N $人をいくつかの部門に分けることになった。ここで、部門分けのスコアを、(部門の数)\*$ K $-(異なる部門に属する$ 2 $人の間の信頼度の総和)と定める。 スコアの最大値を求めるプログラムを書いてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ w_{1,1} $ ... $ w_{1,N} $ : $ w_{N,1} $ ... $ w_{N,N} $
Output Format
$ 1 $行目に、スコアの最大値を出力せよ。
Explanation/Hint
### 制約
- $ 1\ ≦\ N\ ≦\ 17 $
- $ i≠j $ のとき、 $ 1\ ≦\ w_{i,j}\ ≦\ 10^6 $
- $ w_{i,i}\ =\ 0 $
- $ w_{i,j}=w_{j,i} $
- $ 1\ ≦\ K\ ≦\ 10^6 $
- 入力はすべて整数である
### 部分点
- $ N\ ≦\ 9 $ を満たすテストケース全てに正解した場合、部分点として$ 40 $点が与えられる。
- $ N\ ≦\ 15 $ を満たすテストケース全てに正解した場合、部分点として追加で$ 40 $点が与えられる。
### Sample Explanation 1
社員$ 1 $と$ 3 $で$ 1 $つの部門、社員$ 2 $で$ 1 $つの部門を作ると、 部門の数は$ 2 $つ、異なる部門の間の$ 2 $人の信頼度の総和は$ 2 $なので、$ 2*3-2=4 $となる。 スコアを$ 4 $より大きくする方法はない。