結果
| 問題 | No.134 走れ!サブロー君 |
| コンテスト | |
| ユーザー |
Tawara
|
| 提出日時 | 2015-12-31 13:51:18 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 167 ms / 5,000 ms |
| コード長 | 524 bytes |
| 記録 | |
| コンパイル時間 | 149 ms |
| コンパイル使用メモリ | 77,236 KB |
| 最終ジャッジ日時 | 2025-12-03 18:59:20 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 |
ソースコード
R=range;I=lambda:map(float,raw_input().split());x,y=I();N=input() M=10**6;U=1<<N;A=[I() for i in R(N)]+[[x,y,0]] D=[N*[M]for i in R(U)];W=[0]*U;W[0]=sum(A[i][2]for i in R(N)) f=lambda i,j,k:(abs(A[i][0]-A[j][0])+abs(A[i][1]-A[j][1]))*(W[k]+100)/120+A[j][2] for i in R(N):D[1<<i][i]=f(N,i,0);W[1<<i]=W[0]-A[i][2] for i in R(U): for j in R(N): b=1<<j;n=i+b if i&b:continue W[n]=W[i]-A[j][2] for k in R(N): if D[i][k]==M:continue D[n][j]=min(D[n][j],D[i][k]+f(k,j,i)) print min(D[U-1][i]+f(i,N,U-1)for i in R(N))
Tawara