結果

問題 No.3564 Awkward Timing
コンテスト
ユーザー titia
提出日時 2026-06-08 21:58:40
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,131 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 184 ms
コンパイル使用メモリ 85,888 KB
実行使用メモリ 172,676 KB
最終ジャッジ日時 2026-06-08 21:59:29
合計ジャッジ時間 8,157 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点1 40 % -- * 38
満点 60 % AC * 7 WA * 8 TLE * 1 -- * 46
合計 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

from heapq import heappop,heappush
from math import gcd

N,M,K=list(map(int,input().split()))
E=[[] for i in range(N)]

for i in range(M):
    x,y,t=list(map(int,input().split()))
    x-=1
    y-=1
    E[x].append((y,t))
    E[y].append((x,t))

DIS=[1<<63]*N
DIS[0]=0
Q=[(0,0)]

while Q:
    time,ind=heappop(Q)

    if DIS[ind]!=time:
        continue

    for to,cost in E[ind]:
        if DIS[to]>DIS[ind]+cost:
            DIS[to]=DIS[ind]+cost
            heappush(Q,(DIS[to],to))

DIS2=[1<<63]*N
DIS2[N-1]=0
Q=[(0,N-1)]

while Q:
    time,ind=heappop(Q)

    if DIS2[ind]!=time:
        continue

    for to,cost in E[ind]:
        if DIS2[to]>DIS2[ind]+cost:
            DIS2[to]=DIS2[ind]+cost
            heappush(Q,(DIS2[to],to))

ANS=K

L=[]

for i in range(N):
    ANS=gcd(ANS,DIS[i]+DIS2[i])
    #print(DIS[i]+DIS2[i])
    L.append((DIS[i]+DIS2[i])%K)

L=sorted(set(L))
#print("!",ANS)

for i in range(N):
    for _,t in E[i]:
        ANS=gcd(ANS,2*t)

        for x in L:
            y=K-x

            if y%(2*t)==0:
                print(0)
                exit()

print(ANS)
0