結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0