結果

問題 No.2100 [Cherry Alpha C] Two-way Steps
ユーザー 👑 p-adic
提出日時 2024-06-01 07:44:47
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,189 ms / 2,000 ms
コード長 472 bytes
コンパイル時間 1,273 ms
コンパイル使用メモリ 82,208 KB
実行使用メモリ 117,384 KB
最終ジャッジ日時 2024-12-21 12:06:07
合計ジャッジ時間 38,381 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 48
権限があれば一括ダウンロードができます

ソースコード

diff #

P,U=print,max
def J():
	return map(int,input().split())
N,M=J()
H=list(J())
R=range(M)
Z,W=[[] for j in R],[[] for j in R]
for j in R:
	X,Y=J()
	X-=1
	Y-=1
	Z[j],W[j]=[X,Y],[Y,X]
Z.sort()
W.sort(reverse=1)
C,D,E,F=[-1]*N,[-1]*N,[-1]*N,[-1]*N
N-=1
C[0]=D[N]=0
for c,e,z in [C,E,Z],[D,F,W]:
	for x in z:
		X,Y=x[0],x[1]
		h=H[Y]-H[X]
		if c[X]>=0:
			if h>0:e[Y]=U(e[Y],c[X]+h)
			else:c[Y]=U(c[Y],c[X])
		if e[X]>=0 and h<0:c[Y]=U(c[Y],e[X])
P(U(C[N],E[N]))
P(U(D[0],F[0]))
0