結果
| 問題 |
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 |
ソースコード
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)
tktk_snsn