結果
| 問題 | No.3436 [Cherry 8th Tune B] この夏に何が起こるかな? |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2026-01-25 01:43:48 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,147 bytes |
| 記録 | |
| コンパイル時間 | 159 ms |
| コンパイル使用メモリ | 82,420 KB |
| 実行使用メモリ | 117,708 KB |
| 最終ジャッジ日時 | 2026-01-25 01:44:38 |
| 合計ジャッジ時間 | 49,163 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 41 WA * 2 |
ソースコード
import sys
input = sys.stdin.readline
from bisect import bisect
Q=int(input())
for tests in range(Q):
N,M,K,P=list(map(int,input().split()))
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()))
SB=sorted(B)
SC=[[] for i in range(N+M+1)]
for i in range(M):
b,d=B[i],D[i]
SC[d].append(b)
for i in range(N+M+1):
SC[i].sort()
OK=3*10**9
NG=0
while OK>NG+1:
mid=(OK+NG)//2
count=0
for i in range(N):
t=T[i]
c=C[i]
count+=bisect(SB,mid-t)
count+=bisect(SC[c],mid+S[c-1]-t)
count-=bisect(SC[c],mid-t)
if count>=P:
OK=mid
else:
NG=mid
#print(OK)
ind=-1
for i in range(N):
t=T[i]
c=C[i]
k=bisect(SC[c],OK+S[c-1]-t)
if k>=1:
if SC[c][k-1]==OK+S[c-1]-t:
ind=i
break
if ind!=-1:
t,c=T[ind],C[ind]
for i in range(M):
b,d=B[i],D[i]
if c==d:
if t+b-S[c-1]==OK:
ind2=i
else:
if t+b==OK:
ind2=i
print(ind+1,ind2+1)
continue
ind=-1
for i in range(N):
t=T[i]
c=C[i]
k=bisect(SB,OK-t)
l=bisect(SC[c],OK+S[c-1]-t)
flag1=0
flag2=0
if k>=1:
if SB[k-1]==OK-t:
flag1=1
if l>=1:
if SC[c][l-1]==OK+S[c-1]-t:
flag2=1
#print(i,flag1,flag2)
if flag1==1 and flag2==0:
ind=i
break
#print("!",ind)
if ind!=-1:
t,c=T[ind],C[ind]
for i in range(M):
b,d=B[i],D[i]
if c==d:
if t+b-S[c-1]==OK:
ind2=i
else:
if t+b==OK:
ind2=i
print(ind+1,ind2+1)
continue
titia