結果
問題 |
No.759 悪くない忘年会にしような!
|
ユーザー |
![]() |
提出日時 | 2020-03-18 23:02:08 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
MLE
|
実行時間 | - |
コード長 | 758 bytes |
コンパイル時間 | 109 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 745,204 KB |
最終ジャッジ日時 | 2024-12-14 02:45:06 |
合計ジャッジ時間 | 209,192 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 2 MLE * 1 |
other | TLE * 64 |
ソースコード
#!/usr/bin/env python3.8 import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines import numpy as np N = int(readline()) PTR = np.array(read().split(), np.int64) P = PTR[::3] T = PTR[1::3] R = PTR[2::3] INF = 10 ** 4 + 100 dp = np.zeros((10001, 10001), np.int32) for p, t, r in zip(P.tolist(), T.tolist(), R.tolist()): if dp[p, t] < r: dp[p, t] = r if p: if dp[p - 1, t] < r + 1: dp[p - 1, t] = r + 1 if t: if dp[p, t - 1] < r + 1: dp[p, t - 1] = r + 1 dp = dp[::-1, ::-1] np.maximum.accumulate(dp, axis=0, out=dp) np.maximum.accumulate(dp, axis=1, out=dp) dp = dp[::-1, ::-1] ok = dp[P, T] <= R print('\n'.join((ok + 1).astype(str)))