結果
問題 |
No.1170 Never Want to Walk
|
ユーザー |
![]() |
提出日時 | 2020-08-15 08:38:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 996 bytes |
コンパイル時間 | 137 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 276,232 KB |
最終ジャッジ日時 | 2024-10-10 17:17:25 |
合計ジャッジ時間 | 11,451 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 TLE * 1 -- * 6 |
ソースコード
from bisect import* def main(): n,a,b,*x=map(int,open(0).read().split()) e=[[]]+[[i+i,i-~i]for i in range(1,n)]+[[]for _ in range(n)] for i,y in enumerate(x,n): l,r=bisect(x,y-b-1)+n,bisect(x,y-a)+n while l<r: if l&1: e[i]+=l, l+=1 if r&1: r-=1 e[i]+=r, l>>=1 r>>=1 l,r=bisect(x,y+a-1)+n,bisect(x,y+b)+n while l<r: if l&1: e[i]+=l, l+=1 if r&1: r-=1 e[i]+=r, l>>=1 r>>=1 a=[0]*n*2 for s in range(n,n+n): if a[s]:continue c=a[s]=1 q=[s] p={s} for v in q: for w in e[v]: if a[w]:continue if w>=n:c+=1 a[w]=1 p|={w} q+=w, for v in p:a[v]=c print('\n'.join(map(str,a[n:]))) main()