Submission #3978830
Source Code Expand
import sys
from collections import deque
readline = sys.stdin.readline
N, M = map(int, readline().split())
G = [[] for i in range(N)]
for i in range(N-1):
x, y = map(int, readline().split())
G[x-1].append((y-1, 2*i))
G[y-1].append((x-1, 2*i+1))
G0 = [None]*N
V = [(0, -1)]
used = [0]*N
used[0] = 1
que = deque([0])
while que:
v = que.popleft()
g = []
for e in G[v]:
w, d = e
if used[w]:
continue
g.append(e)
V.append(e)
used[w] = 1
que.append(w)
G0[v] = g
memo = [0]*(2*N+1)
for v, e in reversed(V):
r = 1
for w, d in G0[v]:
r = r * (1 + memo[d]) % M
memo[e] = r
lv = [0]*(2*N); rv = [0]*(2*N)
for v, e in V:
s = 1 + memo[e ^ 1]
for w, d in G0[v]:
lv[d] = s
s = s * (1 + memo[d]) % M
s = 1
for w, d in reversed(G0[v]):
rv[d] = s
s = s * (1 + memo[d]) % M
for w, d in G0[v]:
memo[d ^ 1] = lv[d] * rv[d] % M
ans = []
for v in range(N):
r = 1
for w, d in G[v]:
r = r * (1 + memo[d]) % M
ans.append("%d\n" % r)
sys.stdout.writelines(ans)
Submission Info
| Submission Time | |
|---|---|
| Task | V - Subtree |
| User | yaketake08 |
| Language | PyPy3 (2.4.0) |
| Score | 100 |
| Code Size | 1183 Byte |
| Status | AC |
| Exec Time | 799 ms |
| Memory | 94316 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20, 1_21, 1_22, 1_23, 1_24, 1_25, 1_26, 1_27, 1_28, 1_29, 1_30, 1_31 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 170 ms | 38384 KiB |
| 0_01 | AC | 175 ms | 38256 KiB |
| 0_02 | AC | 178 ms | 38384 KiB |
| 0_03 | AC | 173 ms | 38256 KiB |
| 1_00 | AC | 172 ms | 38256 KiB |
| 1_01 | AC | 169 ms | 38256 KiB |
| 1_02 | AC | 646 ms | 86064 KiB |
| 1_03 | AC | 682 ms | 90288 KiB |
| 1_04 | AC | 547 ms | 84692 KiB |
| 1_05 | AC | 570 ms | 89300 KiB |
| 1_06 | AC | 581 ms | 86704 KiB |
| 1_07 | AC | 624 ms | 89684 KiB |
| 1_08 | AC | 590 ms | 85076 KiB |
| 1_09 | AC | 597 ms | 88880 KiB |
| 1_10 | AC | 649 ms | 88276 KiB |
| 1_11 | AC | 635 ms | 92372 KiB |
| 1_12 | AC | 677 ms | 88368 KiB |
| 1_13 | AC | 705 ms | 91604 KiB |
| 1_14 | AC | 673 ms | 87584 KiB |
| 1_15 | AC | 709 ms | 92064 KiB |
| 1_16 | AC | 700 ms | 87712 KiB |
| 1_17 | AC | 740 ms | 93600 KiB |
| 1_18 | AC | 748 ms | 88096 KiB |
| 1_19 | AC | 754 ms | 92208 KiB |
| 1_20 | AC | 719 ms | 86100 KiB |
| 1_21 | AC | 748 ms | 93012 KiB |
| 1_22 | AC | 740 ms | 88368 KiB |
| 1_23 | AC | 733 ms | 91424 KiB |
| 1_24 | AC | 799 ms | 88608 KiB |
| 1_25 | AC | 775 ms | 91952 KiB |
| 1_26 | AC | 737 ms | 89648 KiB |
| 1_27 | AC | 759 ms | 91604 KiB |
| 1_28 | AC | 731 ms | 89648 KiB |
| 1_29 | AC | 725 ms | 94316 KiB |
| 1_30 | AC | 689 ms | 88736 KiB |
| 1_31 | AC | 745 ms | 92884 KiB |