結果
| 問題 |
No.2687 所により大雨
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2024-03-01 11:21:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,246 bytes |
| コンパイル時間 | 145 ms |
| コンパイル使用メモリ | 82,096 KB |
| 実行使用メモリ | 88,020 KB |
| 最終ジャッジ日時 | 2024-09-30 05:59:06 |
| 合計ジャッジ時間 | 5,912 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | -- * 4 |
| other | AC * 10 TLE * 1 -- * 14 |
ソースコード
# TLE O(NKlogM)
import sys
from sys import stdin
N,M = map(int,stdin.readline().split())
lrA = []
lrB = []
for i in range(N):
L,R = map(int,stdin.readline().split())
lrA.append( (L,R) )
for i in range(M):
L,R = map(int,stdin.readline().split())
lrB.append( (L,R) )
K = int(stdin.readline())
P = list(map(int,stdin.readline().split()))
lrA.sort()
lrB.sort()
lrA,lrB = lrB,lrA
N,M = M,N
flag = False
for i in range(N-1):
l,r = lrA[i]
L,R = lrA[i+1]
if L <= r:
flag = True
for i in range(M-1):
l,r = lrB[i]
L,R = lrB[i+1]
if L <= r:
flag = True
if flag:
print (*[1]*K)
sys.exit()
ans = []
for p in P:
flag = False
for L,R in lrB:
# L-t = p -> t = L-p
tl = L-p
tr = R-p
# l+tl = p -> l = p-tl
sl = p - tr
sr = p - tl
ok = 0
ng = len(lrA)
while abs(ok-ng) != 1:
mid = (ok+ng)//2
if lrA[mid][0] <= sr:
ok = mid
else:
ng = mid
l,r = lrA[ok]
if not( r < sl or sr < l ):
flag = True
break
if flag:
ans.append(1)
else:
ans.append(0)
print (*ans)
SPD_9X2