結果
問題 | No.1199 お菓子配り-2 |
ユーザー | donuthole |
提出日時 | 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 sys import math import collections import bisect import itertools import decimal # import numpy as np # sys.setrecursionlimit(10 ** 6) INF = 10 ** 20 MOD = 10 ** 9 + 7 # MOD = 998244353 ni = 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 = 0 for j in range(m): tmp += mat[i][j] res.append(tmp) start = -1 for i in range(1, n): if res[i] < res[i - 1]: start = i-1 break if start == -1: print(res[-1]) exit(0) ans = res[start] minimum = res[start] flg = 0 # 0:kudari 1:nobori for i in range(start + 1, n): if flg == 0: if res[i] <= minimum: minimum = res[i] else: flg = 1 else: if res[i] >= res[i - 1]: continue else: ans += res[i - 1] - minimum minimum = res[i] flg = 0 if flg == 1: ans += res[-1] - minimum print(ans) if __name__ == '__main__': main()