結果
問題 |
No.3229 Liar Game Comibination
|
ユーザー |
![]() |
提出日時 | 2025-08-11 22:23:15 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 832 ms / 2,000 ms |
コード長 | 707 bytes |
コンパイル時間 | 398 ms |
コンパイル使用メモリ | 82,060 KB |
実行使用メモリ | 78,208 KB |
最終ジャッジ日時 | 2025-08-11 22:23:25 |
合計ジャッジ時間 | 8,665 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
N,M,mod=map(int,input().split()) E=(N+59)//60 v=[[0]*E for i in range(M)] u=[1]*60 for k in range(1,60): u[k]=2**k for i in range(M): S=input() for j in range(N): a,b=j//60,j%(60) if S[j]=='1': v[i][a]+=u[b] used=[False]*N for i in range(M): if sum(v[i])>0: for pos in range(E): if v[i][pos]>0: a=pos b=-1 for k in range(60): if(v[i][pos]>>k)&1: b=k break for j in range(i+1,M): if (v[j][pos]>>b)&1: for k in range(E): v[j][k]^=v[i][k] used[60*pos+b]=True break result=1 for i in range(N): if used[i]==False: result*=2 result%=mod print(result)