結果
問題 | No.1266 7 Colors |
ユーザー |
|
提出日時 | 2022-04-05 19:29:46 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,394 bytes |
コンパイル時間 | 265 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 113,792 KB |
最終ジャッジ日時 | 2024-11-27 02:36:19 |
合計ジャッジ時間 | 9,889 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 3 |
other | RE * 19 |
ソースコード
import syssys.setrecursionlimit(10 **8)rr = sys.stdinN,M,Q = map(int,rr.readline().split())S = [input() for _ in range(N)]T = [[0] * 7 for _ in range(N)]for u in range(N):for j in range(7):if S[u][j] == "1":T[u][j] = 1S = TG = [[] for _ in range(N)]for _ in range(M):u,v = map(int,rr.readline().split())u -= 1v -= 1G[u].append(v)G[v].append(u)C = 7 * Nparent = [-1] * Cdef find(i):if parent[i] < 0:return iparent[i] = find(parent[i])return parent[i]def unite(i,j):I = find(i)J = find(j)if I == J:return Falseif parent[I] < parent[J]:I,J = J,Iparent[J] += parent[I]parent[I] = Jreturn Truefor u in range(N):for j in range(7):k = (j + 1) % 7if S[u][j] == 1 and S[u][k] == 1:unite(u * 7 + j,u * 7 + k)for j in range(7):for v in G[u]:if S[u][j] == 1 and S[v][j] == 1:unite(u * 7 + j,v * 7 + j)for _ in range(Q):t,x,y = map(int,rr.realdine().split())x -= 1y -= 1if t == 1:S[x][y] = 1for j in (y-1,y+1):j %= 7if S[x][j] == 1:unite(x * 7 + y,x * 7 + j)for v in G[x]:if S[v][y] == 1:unite(x * 7 + y,v * 7 + y)else:ans = parent[find(x * 7)]print(-ans)