結果
問題 | No.1199 お菓子配り-2 |
ユーザー |
![]() |
提出日時 | 2020-08-28 22:26:40 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 414 ms / 1,000 ms |
コード長 | 1,388 bytes |
コンパイル時間 | 454 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 51,840 KB |
最終ジャッジ日時 | 2024-11-14 03:38:34 |
合計ジャッジ時間 | 15,967 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 45 |
ソースコード
import sysimport mathimport collectionsimport bisectimport itertoolsimport decimal# import numpy as np# sys.setrecursionlimit(10 ** 6)INF = 10 ** 20MOD = 10 ** 9 + 7# MOD = 998244353ni = lambda: int(sys.stdin.readline().rstrip())ns = lambda: map(int, sys.stdin.readline().rstrip().split())na = lambda: list(map(int, sys.stdin.readline().rstrip().split()))na1 = lambda: list(map(lambda x: int(x) - 1, sys.stdin.readline().rstrip().split()))# ===CODE===def main():n, m = ns()mat = [na() for _ in range(n)]res = []for i in range(n):tmp = 0for j in range(m):tmp += mat[i][j]res.append(tmp)start = -1for i in range(1, n):if res[i] < res[i - 1]:start = i-1breakif start == -1:print(res[-1])exit(0)ans = res[start]minimum = res[start]flg = 0 # 0:kudari 1:noborifor i in range(start + 1, n):if flg == 0:if res[i] <= minimum:minimum = res[i]else:flg = 1else:if res[i] >= res[i - 1]:continueelse:ans += res[i - 1] - minimumminimum = res[i]flg = 0if flg == 1:ans += res[-1] - minimumprint(ans)if __name__ == '__main__':main()