結果

問題 No.165 四角で囲え!
ユーザー tktk_snsn
提出日時 2021-03-20 16:14:07
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,793 ms / 5,000 ms
コード長 961 bytes
コンパイル時間 221 ms
コンパイル使用メモリ 82,764 KB
実行使用メモリ 78,192 KB
最終ジャッジ日時 2024-11-21 03:47:24
合計ジャッジ時間 12,515 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict
from operator import itemgetter
import sys
input = sys.stdin.buffer.readline
sys.setrecursionlimit(10 ** 7)
inf = 10**18

N, B = map(int, input().split())
P = list(tuple(map(int, input().split())) for _ in range(N))
P.sort(key=itemgetter(1))
X, _, _ = zip(*P)
X = sorted(set(X))

ans = 0

for i in range(len(X)):
    for j in range(i, len(X)):
        l = 0
        r = 0
        cnt = 0
        score = 0
        while r < N:
            yr = P[r][1]
            while r < N and P[r][1] == yr:
                if X[i] <= P[r][0] <= X[j]:
                    cnt += 1
                    score += P[r][2]
                r += 1
            while score > B:
                yl = P[l][1]
                while l < N and P[l][1] == yl:
                    if X[i] <= P[l][0] <= X[j]:
                        cnt -= 1
                        score -= P[l][2]
                    l += 1
            ans = max(ans, cnt)

print(ans)
0