結果
問題 | No.762 PDCAパス |
ユーザー |
![]() |
提出日時 | 2025-03-20 18:53:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 240 ms / 2,000 ms |
コード長 | 921 bytes |
コンパイル時間 | 328 ms |
コンパイル使用メモリ | 82,644 KB |
実行使用メモリ | 95,348 KB |
最終ジャッジ日時 | 2025-03-20 18:55:29 |
合計ジャッジ時間 | 6,901 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
MOD = 10**9 + 7 n, m = map(int, input().split()) s = input().strip() edges = [] adj = [[] for _ in range(n + 1)] for _ in range(m): u, v = map(int, input().split()) edges.append((u, v)) adj[u].append(v) adj[v].append(u) count_p = [0] * (n + 1) count_d = [0] * (n + 1) count_c = [0] * (n + 1) count_a = [0] * (n + 1) for u in range(1, n + 1): for v in adj[u]: c = s[v - 1] if c == 'P': count_p[u] += 1 elif c == 'D': count_d[u] += 1 elif c == 'C': count_c[u] += 1 elif c == 'A': count_a[u] += 1 total = 0 for u, v in edges: su = s[u - 1] sv = s[v - 1] if su == 'D' and sv == 'C': contrib = count_p[u] * count_a[v] total = (total + contrib) % MOD elif su == 'C' and sv == 'D': contrib = count_p[v] * count_a[u] total = (total + contrib) % MOD print(total % MOD)