Submission #2241258


Source Code Expand

n,m=map(int,input().split())
path=[[0]*n for i in range(n)]
for i in range(m):
    a,b=map(int,input().split())
    path[a-1][b-1]=1
    path[b-1][a-1]=1#隣接グラフを作成
visited=[0]*n#どこを通ったか記憶
visited[0]=1#1は最初に通る
def dfs(position,visited,n):#深さ優先探索
    all_visited=1
    for i in range(n):
        if visited[i]==0:
            all_visited=0#行ったことがない点があれば0
            break#どこかで見つかったらループ終了
    if all_visited==1:
        return 1#全部回れたら1回カウント
    count=0#経路の個数をカウント
    for next in range(n):#次に移動する点
        if path[position][next]==0:
            continue#道がなければ次へ
        if visited[next]==1:
            continue#行ったことがあれば次へ
        visited[next]=1
        count+=dfs(next,visited,n)
        visited[i]=0#行った記録を消去して前のループに戻る
    visited[position]=0

    return count
print(dfs(0,visited,n))

Submission Info

Submission Time
Task C - One-stroke Path
User koheimath
Language Python (3.4.3)
Score 300
Code Size 1068 Byte
Status AC
Exec Time 37 ms
Memory 3064 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt
Case Name Status Exec Time Memory
sample_01.txt AC 17 ms 3064 KB
sample_02.txt AC 17 ms 3064 KB
subtask_1_01.txt AC 17 ms 3064 KB
subtask_1_02.txt AC 17 ms 3064 KB
subtask_1_03.txt AC 17 ms 3064 KB
subtask_1_04.txt AC 37 ms 3064 KB
subtask_1_05.txt AC 17 ms 3064 KB
subtask_1_06.txt AC 17 ms 3064 KB
subtask_1_07.txt AC 17 ms 3064 KB
subtask_1_08.txt AC 17 ms 3064 KB
subtask_1_09.txt AC 17 ms 3064 KB
subtask_1_10.txt AC 19 ms 3064 KB
subtask_1_11.txt AC 18 ms 3064 KB
subtask_1_12.txt AC 25 ms 3064 KB
subtask_1_13.txt AC 33 ms 3064 KB