만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

마라탕 재료 고르기

면접 대비

시간 제한1초메모리 제한1024 MB

요약
N×N 궁합 점수표가 주어질 때, 정확히 K개의 재료를 골라 쌍별 점수의 합을 최대로 만드는 값을 구합니다.
난이도

쉬움10점 중 3점

유형
완전 탐색, 비트 연산
정답자
아직 제출이 없습니다

문제

하얔이는 마라탕에 여러 재료를 넣어 먹는 것을 좋아한다. 하지만 재료를 많이 넣는다고 항상 맛있어지는 것은 아니다. 재료끼리는 궁합이 있어서, 함께 넣으면 맛있는 조합도 있고 그렇지 않은 조합도 있다. 하얔이는 고민에 빠졌다.

대체 어떻게 해야 KK개의 재료를 넣었을 때 마라탕의 맛을 최대로 할 수 있는거지?

Ci,jC_{i,j}를 재료 ii와 재료 jj를 같이 넣었을 때의 궁합이라 하자. 마라탕의 맛은 마라탕에 들어간 모든 재료 쌍의 궁합을 더한 값이다. 고른 재료의 그룹을 GG라고 할 때 마라탕의 맛은 다음과 같다.

∑i,j∈G, i<jCi,j\sum_{i, j\in G,\ i < j}C_{i,j}

하얔이를 위해 재료를 정확히 KK개만 사용했을 때 마라탕 맛의 최댓값을 구하시오.

입력

첫째 줄에 마라탕 재료의 수 NN (1≤N≤101 \leq N \leq 10)과 고를 재료의 수 KK (1≤K≤N1 \leq K \leq N)가 공백으로 구분되어 주어진다.

이후 NN개의 줄에 걸쳐 i+1i+1번째 줄에 재료 ii와 다른 재료들의 궁합을 나타내는 수열 Ci,1,Ci,2,…,Ci,NC_{i,1}, C_{i,2}, \ldots, C_{i,N}이 공백으로 구분된 정수로 주어진다. (−1000≤Ci,j≤1000-1000 \leq C_{i,j} \leq 1000) 단, Ci,i=0C_{i,i} = 0이고 Ci,j=Cj,iC_{i,j} = C_{j,i}이다.

출력

첫째 줄에 KK개의 재료만 사용했을 때 마라탕 맛의 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    4 3
    0 1 2 3
    1 0 -2 6
    2 -2 0 5
    3 6 5 0
    
    예상 출력
    10
    
  2. 예제 2

    입력
    4 1
    0 1 2 3
    1 0 -2 6
    2 -2 0 5
    3 6 5 0
    
    예상 출력
    0