結果

問題 No.1340 おーじ君をさがせ
ユーザー terry_u16terry_u16
提出日時 2021-01-15 22:48:19
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,402 ms / 2,000 ms
コード長 799 bytes
コンパイル時間 1,999 ms
コンパイル使用メモリ 82,204 KB
実行使用メモリ 82,176 KB
最終ジャッジ日時 2024-11-27 23:18:22
合計ジャッジ時間 21,289 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 59
権限があれば一括ダウンロードができます

ソースコード

diff #

n, edgeCount, timeLimit = map(int, input().split())
doubling = [[[False] * n for _ in range(n)] for _ in range(61)]

for _ in range(edgeCount):
    u, v = map(int, input().split())
    doubling[0][u][v] = True

for d in range(60):
    for u in range(n):
        for v in range(n):
            if not doubling[d][u][v]:
                continue

            for w in range(n):
                doubling[d + 1][u][w] |= doubling[d][v][w]

current = [False] * n
current[0] = True

for d in range(60):
    if ((timeLimit >> d) & 1) > 0:
        nxt = [False] * n
        for u in range(n):
            if current[u]:
                for v in range(n):
                    nxt[v] |= doubling[d][u][v]
        current = nxt

count = 0

for v in range(n):
    if current[v]:
        count += 1

print(count)
0