結果
問題 |
No.1689 Set Cards
|
ユーザー |
|
提出日時 | 2025-02-26 11:59:42 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 504 ms / 2,000 ms |
コード長 | 688 bytes |
コンパイル時間 | 440 ms |
コンパイル使用メモリ | 82,244 KB |
実行使用メモリ | 79,316 KB |
最終ジャッジ日時 | 2025-02-26 11:59:48 |
合計ジャッジ時間 | 5,130 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
MOD = 998244353 N = int(input()) A = [] for _ in range(N): a = list(map(int,input().split())) A.append(set(a[1:])) M = 0 for i in range(N): a = 0 if len(A[i])==0: a = 0 else: a = max(A[i]) M = max(M,a) I = [set() for _ in range(M+1)] for j in range(1,M+1): for i in range(N): if j in A[i]: I[j].add(i) ans = 0 for k in range(1,1<<M): J = set(list(range(N))) cnt = 0 for j in range(M): if (k>>j)&1: J &= I[j+1] cnt += 1 if cnt%2==0: ans = (ans-pow(2,len(J),MOD)+1)%MOD else: ans = (ans+pow(2,len(J),MOD)-1)%MOD ans = (pow(2,N,MOD)-1-ans)%MOD print(ans)