結果
問題 | No.2684 折々の色 |
ユーザー |
👑 |
提出日時 | 2024-02-29 22:04:53 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 970 bytes |
コンパイル時間 | 398 ms |
コンパイル使用メモリ | 82,712 KB |
実行使用メモリ | 249,344 KB |
最終ジャッジ日時 | 2024-09-29 18:31:11 |
合計ジャッジ時間 | 26,155 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 55 WA * 1 |
ソースコード
n, m = map(int, input().split()) assert 2 <= n <= 200000 assert 1 <= m <= 10 X = list(map(int, input().split())) assert all(0 <= x < (1 << 16) for x in X) C = [] T = [] for _ in range(n): C_ = list(map(int, input().split())) t = C_.pop() assert len(C_) == m assert 0 < t <= 100 assert all(0 <= c < (1 << 16) for c in C_) T.append(t) C.append(C_) inds = {} for i in range(n): if T[i] == 100: if C[i] == X: print("Yes") exit() D = tuple(T[i] * c for c in C[i]) inds.setdefault(D, []).append(i) X = [x * 10000 for x in X] for i in range(n): if T[i] == 100: continue D = [0] * m ok = True for j in range(m): D[j] = X[j] - 100 * T[i] * C[i][j] if D[j] % (100 - T[i]) != 0: ok = False break D[j] //= 100 - T[i] if ok: tup = tuple(D) if tup in inds: print("Yes") exit() print("No")