結果
| 問題 | No.3436 [Cherry 8th Tune B] この夏に何が起こるかな? |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-01-23 22:03:02 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 2,244 ms / 4,000 ms |
| コード長 | 1,553 bytes |
| 記録 | |
| コンパイル時間 | 205 ms |
| コンパイル使用メモリ | 82,400 KB |
| 実行使用メモリ | 118,920 KB |
| 最終ジャッジ日時 | 2026-01-23 22:04:16 |
| 合計ジャッジ時間 | 64,464 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 43 |
ソースコード
from bisect import bisect_left as bs
for _ in range(int(input())):
n, m, k, p = list(map(int, input().split()))
p = p-1
T = list(map(int, input().split()))
C = list(map(int, input().split()))
B = list(map(int, input().split()))
D = list(map(int, input().split()))
S = list(map(int, input().split()))
A = [[] for _ in range(k)]
X = []
for i in range(m):
A[D[i]-1].append(B[i])
X.append(B[i])
X.sort()
for i in range(k):
A[i].sort()
l = 0
r = 2*10**9+1
while r-l > 1:
mid = (l+r) >> 1
cnt = 0
for i in range(n):
t, c = T[i], C[i]-1
cnt += bs(X, mid-t)
s = S[c]
cnt += bs(A[c], mid-t+s) - bs(A[c], mid-t)
if cnt <= p:
l = mid
else:
r = mid
ans = l
for i in range(n):
t, c = T[i], C[i]-1
idx2 = bs(A[c], ans-t+S[c])
f = 0
if idx2 < len(A[c]) and A[c][idx2] == ans-t+S[c]:
f = 1
else:
idx0 = bs(X, ans-t)
idx1 = bs(X, ans-t+1)
s = S[c]
idx2 = bs(A[c], ans-t)
idx3 = bs(A[c], ans-t+1)
if idx1-idx0 > idx3-idx2:
f = 1
if f:
for j in range(m):
if c != D[j]-1 and t + B[j] == ans:
print(i+1, j+1)
break
if c == D[j]-1 and t + B[j] - S[c] == ans:
print(i+1, j+1)
break
break
kidodesu