結果
| 問題 |
No.165 四角で囲え!
|
| コンテスト | |
| ユーザー |
chocorusk
|
| 提出日時 | 2020-09-18 18:41:55 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 858 bytes |
| コンパイル時間 | 130 ms |
| コンパイル使用メモリ | 82,544 KB |
| 実行使用メモリ | 77,676 KB |
| 最終ジャッジ日時 | 2024-06-22 08:06:12 |
| 合計ジャッジ時間 | 4,449 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 2 |
| other | AC * 14 WA * 5 |
ソースコード
import sys
read=sys.stdin.buffer.read
readline=sys.stdin.buffer.readline
readlines=sys.stdin.buffer.readlines
n, b=map(int, readline().split())
xyp=list(map(int, read().split()))
xs=xyp[::3]
ys=xyp[1::3]
ps=xyp[2::3]
qs=list(zip(xs, ys, ps))
qs.sort()
ans=0
from bisect import bisect_left
for i in range(n):
if i>0 and qs[i-1][0]==qs[i][0]:
continue
z=[]
for j in range(i, n):
if j<n-1 and qs[j+1][0]==qs[j][0]:
continue
k=bisect_left(z, qs[j][1:])
z=z[:k]+[qs[j][1:]]+z[k:]
s=0
l=0
for r, q in enumerate(z):
s+=q[1]
if r<len(z)-1 and z[r+1][0]==q[0]:
continue
while l<=r and (s>b or (l>0 and z[l-1][0]==z[l][0])):
s-=z[l][1]
l+=1
if ans<r-l+1:
ans=r-l+1
print(ans)
chocorusk