結果
問題 |
No.1045 直方体大学
|
ユーザー |
![]() |
提出日時 | 2025-03-14 13:00:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 708 ms / 2,000 ms |
コード長 | 889 bytes |
コンパイル時間 | 358 ms |
コンパイル使用メモリ | 82,920 KB |
実行使用メモリ | 181,724 KB |
最終ジャッジ日時 | 2025-03-14 13:00:36 |
合計ジャッジ時間 | 6,821 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 17 |
ソースコード
n=int(input()) b=[list(map(int,input().split())) for i in range(n)] bb=[[[] for j in range(3)] for i in range(n)] for i in range(n): for j in range(3): bb[i][j]=b[i][:] bb[i][j].pop(j) bb[i][j].sort() q=[[[0]*3 for j in range(n)] for i in range(1<<n)] for i in range(n): for j in range(3): q[1<<i][i][j]=b[i][j] for i in range(1<<n): for j1 in range(n): for k1 in range(3): if q[i][j1][k1]==0: continue for j2 in range(n): for k2 in range(3): if (i>>j2)&1==0: b1=bb[j1][k1] b2=bb[j2][k2] if b1[0]==b2[0] and b1[1]==b2[1] and j2<j1: continue if b1[0]<=b2[0] and b1[1]<=b2[1]: q[i|(1<<j2)][j2][k2]=max(q[i|(1<<j2)][j2][k2],q[i][j1][k1]+b[j2][k2]) h=0 for i in range(1<<n): for j in range(n): for k in range(3): h=max(h,q[i][j][k]) print(h)