# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
932030 |
2024-02-22T20:28:27 Z |
tfgs |
Robot (JOI21_ho_t4) |
Python 3 |
|
1610 ms |
97580 KB |
from collections import Counter
def solve():
n, m = map(int, input().split())
g = [[] for _ in range(n)]
for _ in range(m):
u, v, c, p = map(int, input().split())
u -= 1
v -= 1
g[u].append((c, p, v))
g[v].append((c, p, u))
uniq = [set() for _ in range(n)]
for i in range(n):
cnt = Counter(c for c, p, v in g[i])
# print(cnt)
uniq[i] = {c for c,_ in filter(lambda cn: cn[1] == 1, cnt.most_common())}
# print(uniq)
st = set()
vis = [0]*n
def dfs(u):
vis[u] = 1
st.add(u)
for c, p, v in g[u]:
if not vis[v] and c in uniq[u]:
dfs(v)
dfs(0)
ans = [-1]*n
changes = 0
while changes <= m:
nxt = set()
for u in st:
ans[u] = changes
for c, p, v in g[u]:
if not vis[v]:
nxt.add(v)
st = set()
for u in nxt:
dfs(u)
changes += 1
print(ans[n-1])
solve()
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
12 ms |
3420 KB |
Output is correct |
2 |
Correct |
13 ms |
3192 KB |
Output is correct |
3 |
Incorrect |
13 ms |
3420 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
478 ms |
33288 KB |
Output is correct |
2 |
Correct |
202 ms |
18420 KB |
Output is correct |
3 |
Correct |
773 ms |
44944 KB |
Output is correct |
4 |
Correct |
325 ms |
26300 KB |
Output is correct |
5 |
Incorrect |
1610 ms |
97580 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
12 ms |
3420 KB |
Output is correct |
2 |
Correct |
13 ms |
3192 KB |
Output is correct |
3 |
Incorrect |
13 ms |
3420 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |