結果
| 問題 |
No.859 路線A、路線B、路線C
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-08-10 03:31:22 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 30 ms / 1,000 ms |
| コード長 | 657 bytes |
| コンパイル時間 | 182 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-07-19 16:55:22 |
| 合計ジャッジ時間 | 1,423 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 |
ソースコード
from itertools import permutations
x, y, z = map(int, input().split())
s0, t0 = input().split()
s1, t1 = input().split()
t0 = int(t0) - 1
t1 = int(t1) - 1
D = {}
D['A'] = x - 1
D['B'] = y - 1
D['C'] = z - 1
A = [('A', 0), ('A', x-1), ('B', 0), ('B', y-1), ('C', 0), ('C', z-1), (s0, t0), (s1, t1)]
A = list(set(A))
B = {}
for a in A:
B[a] = {}
for b in A:
if a[0] == b[0]:
B[a][b] = abs(a[1] - b[1])
else:
B[a][b] = min(a[1] + b[1] + 1 , D[a[0]] - a[1] + D[b[0]] - b[1] + 1)
for a in A:
for b in A:
for c in A:
B[b][c] = min(B[b][c], B[b][a] + B[a][c])
print(B[s0, t0][s1, t1])