結果
問題 |
No.3292 World Map Distance
|
ユーザー |
![]() |
提出日時 | 2025-10-03 22:37:29 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 906 bytes |
コンパイル時間 | 383 ms |
コンパイル使用メモリ | 82,592 KB |
実行使用メモリ | 214,728 KB |
最終ジャッジ日時 | 2025-10-03 22:37:54 |
合計ジャッジ時間 | 24,426 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 WA * 26 |
ソースコード
N,X,Y=map(int,input().split()) Lx=[] Ly=[] Ax=set() Ay=set() for i in range(N): x,y=map(int,input().split()) Lx.append(x) Ly.append(y) Lx.append(x+X) Ly.append(y+Y) Lx.append(x+2*X) Ly.append(y+2*Y) Ax.add(x) Ay.add(y) Ax.add(x+X//2) Ax.add(x+(X+1)//2) Ay.add(y+Y//2) Ay.add(y+(Y+1)//2) result0,result1=0,0 Lx.sort() Ly.sort() from bisect import bisect_right vx=[0]*(3*N+2) vy=[0]*(3*N+2) for i in range(3*N): vx[i+1]=vx[i]+Lx[i] vy[i+1]=vy[i]+Ly[i] for a in Ax: p=a+X pos=bisect_right(Lx,p+X//2) pos2=bisect_right(Lx,p) count=pos-pos2 count2=N-count d=(vx[pos]-vx[pos2])-count*p d+=count2*p-(vx[pos2]-vx[pos-N]) result0=max(result0,d) for a in Ay: p=a+Y pos=bisect_right(Ly,p+X//2) pos2=bisect_right(Ly,p) count=pos-pos2 count2=N-count d=(vy[pos]-vy[pos2])-count*p d+=count2*p-(vy[pos2]-vy[pos-N]) result1=max(result1,d) print(result0+result1)