結果
問題 | No.2178 Payable Magic Items |
ユーザー | Hydru |
提出日時 | 2023-01-06 23:01:36 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,242 ms / 4,000 ms |
コード長 | 1,057 bytes |
コンパイル時間 | 410 ms |
コンパイル使用メモリ | 82,028 KB |
実行使用メモリ | 145,852 KB |
最終ジャッジ日時 | 2024-12-14 18:03:28 |
合計ジャッジ時間 | 9,085 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 |
ソースコード
n,k=map(int,input().split()) if n==1 or k==1: print(n-1) exit() S=[input() for _ in range(n)] X=[list(int(s) for s in S[i]) for i in range(n)] A=[sum(x) for x in X] entry_set=set(S) max_A=max(A) if max_A==4*k: print(n-1) exit() remove_set=set() for i in range(n): if A[i]==max_A: entry_set.remove(S[i]) for j in range(k): if X[i][j]==0: continue remove_set.add("".join([str(X[i][l]-1) if l==j else str(X[i][l]) for l in range(k)])) num=max_A-1 ans=0 while(entry_set): for i in range(n): if A[i]==num: if S[i] in remove_set: ans+=1 else: remove_set.add(S[i]) entry_set.remove(S[i]) _remove_set=set() for r in remove_set: for j in range(k): if r[j]=="0": continue R=list(r) R[j]=str(int(R[j])-1) _remove_set.add("".join(R)) remove_set=_remove_set num-=1 if num==-1: break print(ans)