Submission #14916290
Source Code Expand
#!/usr/bin/env python3
"""
Simple Version
Python TLE https://atcoder.jp/contests/dp/submissions/14906600
PyPy TLE https://atcoder.jp/contests/dp/submissions/14906630
"""
from collections import defaultdict
import sys
sys.setrecursionlimit(10**6)
def solve(N, M, edges):
longest = {}
stack = [v for v in edges]
while stack:
v = stack.pop()
if v > 0:
if v in longest:
continue
next_edges = edges.get(v)
stack.append(-v)
if next_edges:
stack.extend(next_edges)
else:
next_edges = edges.get(-v)
if not next_edges:
ret = 0
else:
ret = max(longest[x] for x in next_edges) + 1
longest[-v] = ret
return max(longest[v] for v in edges)
def main():
N, M = map(int, input().split())
edges = defaultdict(set)
for i in range(M):
v1, v2 = map(int, input().split())
edges[v1].add(v2)
print(solve(N, M, edges))
T1 = """
4 5
1 2
1 3
3 2
2 4
3 4
"""
T2 = """
6 3
2 3
4 5
5 6
"""
T3 = """
5 8
5 3
2 3
2 4
5 2
5 1
1 4
4 3
1 3
"""
def _test():
"""
# >>> as_input(T1)
# >>> main()
# 3
# >>> as_input(T2)
# >>> main()
# 2
>>> as_input(T3)
>>> main()
3
"""
import doctest
doctest.testmod()
def as_input(s):
"use in test, use given string as input file"
import io
global read, input
f = io.StringIO(s.strip())
input = f.readline
read = f.read
USE_NUMBA = False
if (USE_NUMBA and sys.argv[-1] == 'ONLINE_JUDGE') or sys.argv[-1] == '-c':
print("compiling")
from numba.pycc import CC
cc = CC('my_module')
cc.export('solve', solve.__doc__.strip().split()[0])(solve)
cc.compile()
exit()
else:
input = sys.stdin.buffer.readline
read = sys.stdin.buffer.read
if (USE_NUMBA and sys.argv[-1] != '-p') or sys.argv[-1] == "--numba":
# -p: pure python mode
# if not -p, import compiled module
from my_module import solve # pylint: disable=all
elif sys.argv[-1] == "-t":
_test()
sys.exit()
elif sys.argv[-1] != '-p' and len(sys.argv) == 2:
# input given as file
input_as_file = open(sys.argv[1])
input = input_as_file.buffer.readline
read = input_as_file.buffer.read
main()
Submission Info
| Submission Time | |
|---|---|
| Task | G - Longest Path |
| User | nishiohirokazu |
| Language | PyPy3 (7.3.0) |
| Score | 100 |
| Code Size | 2515 Byte |
| Status | AC |
| Exec Time | 256 ms |
| Memory | 117632 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 67 ms | 64980 KiB |
| 0_01 | AC | 64 ms | 65268 KiB |
| 0_02 | AC | 62 ms | 65192 KiB |
| 1_00 | AC | 63 ms | 65356 KiB |
| 1_01 | AC | 256 ms | 117632 KiB |
| 1_02 | AC | 119 ms | 74780 KiB |
| 1_03 | AC | 218 ms | 100212 KiB |
| 1_04 | AC | 197 ms | 87292 KiB |
| 1_05 | AC | 163 ms | 79940 KiB |
| 1_06 | AC | 148 ms | 76076 KiB |
| 1_07 | AC | 133 ms | 74756 KiB |
| 1_08 | AC | 135 ms | 75068 KiB |
| 1_09 | AC | 130 ms | 74488 KiB |
| 1_10 | AC | 130 ms | 74624 KiB |
| 1_11 | AC | 158 ms | 77108 KiB |
| 1_12 | AC | 234 ms | 99780 KiB |
| 1_13 | AC | 230 ms | 100296 KiB |
| 1_14 | AC | 158 ms | 79048 KiB |
| 1_15 | AC | 151 ms | 76548 KiB |
| 1_16 | AC | 213 ms | 92836 KiB |
| 1_17 | AC | 253 ms | 105148 KiB |
| 1_18 | AC | 177 ms | 84820 KiB |