Submission #2692541


Source Code Expand

N = int(input())
a, b = map(int, input().split())
a, b = a-1, b-1
M = int(input())
G = [[float('inf')]*N for i in range(N)]
edge = []
for i in range(M):
    x, y = map(int, input().split())
    x, y = x-1, y-1
    G[x][y] = 1
    G[y][x] = 1
    edge.append((x, y))

for k in range(N):
    for i in range(N):
        for j in range(N):
            G[i][j] = min(G[i][j], G[i][k]+G[k][j])

P = G[a]
P[a] = 0
DAG = [[] for i in range(N)]
for x, y in edge:
    if P[y] == P[x] + 1:
        DAG[x].append(y)
    if P[x] == P[y] + 1:
        DAG[y].append(x)


def topological_sort(g):
    topological_list = []
    visited = set()

    def dfs(n):
        for e in g[n]:
            if e not in visited:
                dfs(e)
        topological_list.append(n)
        visited.add(n)

    for i in range(len(g)):
        if i not in visited:
            dfs(i)

    return topological_list[::-1]


topology = topological_sort(DAG)
dp = [0] * N
dp[a] = 1
for t in topology:
    for e in DAG[t]:
        dp[e] += dp[t]

print(dp[b] % (10**9+7))

Submission Info

Submission Time
Task C - 正直者の高橋くん
User AT274
Language Python (3.4.3)
Score 100
Code Size 1094 Byte
Status AC
Exec Time 585 ms
Memory 3188 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 32
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 18 ms 3064 KB
subtask0_sample_02.txt AC 18 ms 3064 KB
subtask1_01.txt AC 585 ms 3188 KB
subtask1_02.txt AC 548 ms 3188 KB
subtask1_03.txt AC 18 ms 3064 KB
subtask1_04.txt AC 532 ms 3188 KB
subtask1_05.txt AC 549 ms 3188 KB
subtask1_06.txt AC 27 ms 3064 KB
subtask1_07.txt AC 82 ms 3064 KB
subtask1_08.txt AC 52 ms 3064 KB
subtask1_09.txt AC 64 ms 3064 KB
subtask1_10.txt AC 81 ms 3064 KB
subtask1_11.txt AC 548 ms 3188 KB
subtask1_12.txt AC 532 ms 3188 KB
subtask1_13.txt AC 521 ms 3188 KB
subtask1_14.txt AC 524 ms 3188 KB
subtask1_15.txt AC 530 ms 3188 KB
subtask1_16.txt AC 560 ms 3188 KB
subtask1_17.txt AC 549 ms 3188 KB
subtask1_18.txt AC 566 ms 3188 KB
subtask1_19.txt AC 525 ms 3188 KB
subtask1_20.txt AC 525 ms 3188 KB
subtask1_21.txt AC 535 ms 3188 KB
subtask1_22.txt AC 544 ms 3188 KB
subtask1_23.txt AC 546 ms 3188 KB
subtask1_24.txt AC 547 ms 3188 KB
subtask1_25.txt AC 561 ms 3188 KB
subtask1_26.txt AC 529 ms 3188 KB
subtask1_27.txt AC 537 ms 3188 KB
subtask1_28.txt AC 518 ms 3188 KB
subtask1_29.txt AC 81 ms 3064 KB
subtask1_30.txt AC 18 ms 3064 KB