結果
問題 |
No.1345 Beautiful BINGO
|
ユーザー |
![]() |
提出日時 | 2025-06-12 16:06:49 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,823 bytes |
コンパイル時間 | 227 ms |
コンパイル使用メモリ | 82,588 KB |
実行使用メモリ | 85,060 KB |
最終ジャッジ日時 | 2025-06-12 16:06:57 |
合計ジャッジ時間 | 7,274 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 23 TLE * 1 -- * 37 |
ソースコード
import sys from itertools import combinations def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx +=1 M = int(input[idx]); idx +=1 A = [] for _ in range(N): row = list(map(int, input[idx:idx+N])) idx +=N A.append(row) # Enumerate all lines lines = [] # Rows for i in range(N): cells = [] total = 0 for j in range(N): val = A[i][j] cells.append((i, j)) total += val lines.append( (total, cells) ) # Columns for j in range(N): cells = [] total = 0 for i in range(N): val = A[i][j] cells.append((i, j)) total += val lines.append( (total, cells) ) # Diagonals # Top-left to bottom-right cells = [] total = 0 for i in range(N): j = i val = A[i][j] cells.append((i, j)) total += val lines.append( (total, cells) ) # Top-right to bottom-left cells = [] total = 0 for i in range(N): j = N - 1 - i val = A[i][j] cells.append((i, j)) total += val lines.append( (total, cells) ) min_total = float('inf') # Generate all possible combinations of lines with size from M to len(lines) for k in range(M, len(lines)+1): for selected in combinations(range(len(lines)), k): covered = set() for idx_line in selected: for (i,j) in lines[idx_line][1]: covered.add( (i,j) ) current_sum = 0 for (i,j) in covered: current_sum += A[i][j] if current_sum < min_total: min_total = current_sum print(min_total) if __name__ == "__main__": main()