結果
問題 |
No.1912 Get together 2
|
ユーザー |
|
提出日時 | 2025-07-26 19:12:43 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 801 bytes |
コンパイル時間 | 297 ms |
コンパイル使用メモリ | 82,244 KB |
実行使用メモリ | 209,352 KB |
最終ジャッジ日時 | 2025-07-26 19:12:54 |
合計ジャッジ時間 | 10,011 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 3 WA * 30 |
ソースコード
MI=lambda:map(int,input().split()) li=lambda:list(MI()) ii=lambda:int(input()) n,m=li() v=li() s=[input().strip() for _ in range(n)] msk=[0]*n for i in range(n): for j,c in enumerate(s[i]): if c=='o':msk[i]|=1<<j adj=[[] for _ in range(m)] for i,mm in enumerate(msk): for j in range(m): if mm>>j&1:adj[j].append(i) alive=[1]*n t=[0]*m for j in range(m): sm=0 for i in adj[j]:sm+=v[i] t[j]=sm res=0 used=[0]*m for _ in range(m): bj=0;best=-1 for j in range(m): if not used[j] and t[j]>best:best=t[j];bj=j if best<=0:break used[bj]=1 res+=best*best for i in adj[bj]: if alive[i]: alive[i]=0 wi=v[i];mm=msk[i] for j in range(m): if not used[j] and mm>>j&1:t[j]-=wi print(res)