結果
問題 | No.2702 Nand Nor Matrix |
ユーザー |
![]() |
提出日時 | 2024-03-29 22:58:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 285 ms / 2,000 ms |
コード長 | 1,780 bytes |
コンパイル時間 | 302 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 132,356 KB |
最終ジャッジ日時 | 2024-09-30 16:43:45 |
合計ジャッジ時間 | 16,895 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 51 |
ソースコード
import sysinput = sys.stdin.readlineT = 20def naive(N, A, B, qs):X = [[[0] * N for _ in range(N)] for _ in range(T)]for i in range(N):X[0][0][i] = A[i]for i in range(1, N):X[0][i][0] = B[i]# print(*["".join(map(str, row)) for row in X], sep="\n")# print()for t in range(1, T):for i in range(N):for j in range(N):if i == 0 or j == 0:X[t][i][j] = X[t - 1][i][j]else:X[t][i][j] = (0if X[t - 1][i][j] + X[t - 1][i - 1][j] + X[t - 1][i][j - 1] >= 2else 1)# print(*["".join(map(str, row)) for row in X], sep="\n")# print()return [X[t][r][c] for t, r, c in qs]def solve(N, A, B, qs):if N == 1:return [A[0]] * len(qs)row = [-1] * Nrow[0] = B[1]for i in range(1, N):if row[i - 1] == A[i]:row[i] = A[i] ^ 1else:breakcol = [-1] * Ncol[0] = A[1]for i in range(1, N):if col[i - 1] == B[i]:col[i] = B[i] ^ 1else:breakans = []for t, r, c in qs:x = -1if r == 0:x = A[c]elif c == 0:x = B[r]elif col[r] == -1 or row[c] == -1 or r + c > t + 1:x = t % 2else:x = A[c] ^ B[r] ^ A[1] ^ 1ans.append(x)return ansN = int(input())A = list(map(int, input().split()))B = [A[0]] + [int(input()) for _ in range(N - 1)]Q = int(input())qs = []for _ in range(Q):t, r, c = map(int, input().split())qs.append((t, r - 1, c - 1))print(*solve(N, A, B, qs), sep="\n")