結果

問題 No.2687 所により大雨
ユーザー fiblonaria
提出日時 2024-03-25 14:40:54
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,148 ms / 2,000 ms
コード長 1,026 bytes
コンパイル時間 167 ms
コンパイル使用メモリ 81,664 KB
実行使用メモリ 88,576 KB
最終ジャッジ日時 2024-09-30 14:05:14
合計ジャッジ時間 12,673 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

N, M = map(int, input().split())
ordinary_clouds = [list(map(int, input().split())) for _ in range(N)]
rare_clouds = [list(map(int, input().split())) for _ in range(M)]
K = int(input())
P = list(map(int, input().split()))
ordinary_clouds.sort(key=lambda x: x[0])
for i in range(N - 1):
    if ordinary_clouds[i][1] >= ordinary_clouds[i + 1][0]:
        print(*([1] * K))
        exit()
rare_clouds.sort(key=lambda x: x[0])
for i in range(M - 1):
    if rare_clouds[i][1] >= rare_clouds[i + 1][0]:
        print(*([1] * K))
        exit()
ans = [0 for i in range(K)]
for i in range(K):
    for j in range(M):
        k_range = [-1, N]
        while k_range[1] - k_range[0] > 1:
            k = (k_range[0] + k_range[1]) // 2
            if rare_clouds[j][0] + ordinary_clouds[k][0] <= P[i] * 2:
                k_range[0] = k
            else:
                k_range[1] = k
        k = k_range[0]
        if k != -1:
            if rare_clouds[j][1] + ordinary_clouds[k][1] >= P[i] * 2:
                ans[i] = 1
print(*ans)
0