Submission #3005262


Source Code Expand

from collections import defaultdict,deque
import sys,heapq,bisect,math,itertools,string,queue,datetime
sys.setrecursionlimit(10**8)
INF = float('inf')
mod = 10**9+7
eps = 10**-7
def inpl(): return list(map(int, input().split()))
def inpl_s(): return list(input().split())


N = int(input())
Start,Goal = inpl()
Start -= 1
Goal -= 1
M = int(input())

lines = defaultdict(set)
for i in range(M):
	a,b = inpl() #a <-> b コスト:c
	a,b = a-1,b-1
	lines[a].add((b,1))
	lines[b].add((a,1))

def search (s,w_0): #s->t
	global weight
	global q

	for line in list(lines[s]):
		t = line[0]
		w = w_0 + line[1]
		if weight[t] > w:
			heapq.heappush(q, [w,t])
			weight[t] = w


weight = [INF for i in range(N)]
weight[Start] = 0
q = [[0,Start]]
heapq.heapify(q)
while q:
	w,n = heapq.heappop(q)
	search(n,w)

DAG = defaultdict(set)
for s in range(N):
	for t,c in lines[s]:
		if weight[t]-weight[s] == 1:
			DAG[s].add(t)

ans = 0
memo = [-1]*N
def azunyan(s):
	global ans

	if s == Goal:
		return 1
	elif memo[s] >= 0:
		return memo[s]
	else:
		cnt = 0
		for t in DAG[s]:
			cnt += azunyan(t)
		memo[s] = cnt
		return cnt


print(azunyan(Start)%mod)

Submission Info

Submission Time
Task C - 正直者の高橋くん
User simamumu
Language Python (3.4.3)
Score 100
Code Size 1208 Byte
Status AC
Exec Time 32 ms
Memory 4336 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 30 ms 4208 KB
subtask0_sample_02.txt AC 30 ms 4204 KB
subtask1_01.txt AC 31 ms 4332 KB
subtask1_02.txt AC 30 ms 4332 KB
subtask1_03.txt AC 30 ms 4204 KB
subtask1_04.txt AC 31 ms 4332 KB
subtask1_05.txt AC 31 ms 4332 KB
subtask1_06.txt AC 30 ms 4204 KB
subtask1_07.txt AC 30 ms 4204 KB
subtask1_08.txt AC 30 ms 4204 KB
subtask1_09.txt AC 30 ms 4212 KB
subtask1_10.txt AC 30 ms 4204 KB
subtask1_11.txt AC 31 ms 4332 KB
subtask1_12.txt AC 31 ms 4332 KB
subtask1_13.txt AC 31 ms 4332 KB
subtask1_14.txt AC 31 ms 4336 KB
subtask1_15.txt AC 31 ms 4336 KB
subtask1_16.txt AC 31 ms 4332 KB
subtask1_17.txt AC 30 ms 4208 KB
subtask1_18.txt AC 31 ms 4204 KB
subtask1_19.txt AC 31 ms 4336 KB
subtask1_20.txt AC 31 ms 4332 KB
subtask1_21.txt AC 32 ms 4332 KB
subtask1_22.txt AC 31 ms 4208 KB
subtask1_23.txt AC 31 ms 4204 KB
subtask1_24.txt AC 30 ms 4208 KB
subtask1_25.txt AC 31 ms 4208 KB
subtask1_26.txt AC 31 ms 4332 KB
subtask1_27.txt AC 30 ms 4332 KB
subtask1_28.txt AC 31 ms 4332 KB
subtask1_29.txt AC 30 ms 4212 KB
subtask1_30.txt AC 30 ms 4208 KB