結果

問題 No.999 てん vs. ほむ
ユーザー petite_progpetite_prog
提出日時 2020-02-28 21:29:24
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
RE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,985 bytes
コンパイル時間 425 ms
コンパイル使用メモリ 12,928 KB
実行使用メモリ 11,904 KB
最終ジャッジ日時 2024-10-13 16:48:00
合計ジャッジ時間 2,175 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 3
other RE * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

#
#     ⋀_⋀  
#    (・ω・)  
# ./ U ∽ U\
#  │* 合 *│
#  │* 格 *│ 
#  │* 祈 *│ 
#  │* 願 *│ 
#  │*   *│ 
#       ̄
#
import sys
sys.setrecursionlimit(10**6)
input=sys.stdin.readline
from math import floor,sqrt,factorial,hypot,log #log2ないyp
from heapq import heappop, heappush, heappushpop
from collections import Counter,defaultdict,deque
from itertools import accumulate,permutations,combinations,product,combinations_with_replacement
from bisect import bisect_left,bisect_right
from copy import deepcopy
from fractions import gcd
from random import randint
def ceil(a,b): return (a+b-1)//b
inf=float('inf')
mod = 10**9+7
def pprint(*A): 
    for a in A:     print(*a,sep='\n')
def INT_(n): return int(n)-1
def MI(): return map(int,input().split())
def MF(): return map(float, input().split())
def MI_(): return map(INT_,input().split())
def LI(): return list(MI())
def LI_(): return [int(x) - 1 for x in input().split()]
def LF(): return list(MF())
def LIN(n:int): return [I() for _ in range(n)]
def LLIN(n: int): return [LI() for _ in range(n)]
def LLIN_(n: int): return [LI_() for _ in range(n)]
def LLI(): return [list(map(int, l.split() )) for l in input()]
def I(): return int(input())
def F(): return float(input())
def ST(): return input().replace('\n', '')
def main():
    #どこまでを左で、どこから右で取るかを全探索
    N=I()
    A=LI()
    left_cumsum = [0]
    right_cumsum = []
    before_left=0
    before_right=0
    for i in range(N):
        left_cumsum.append(before_left+A[2*i]-A[2*i+1])
        before_left = left_cumsum[-1]
    for i in range(N)[::-1]:
        right_cumsum.append(before_right+A[2*i+1]-A[2*i])
        before_right = right_cumsum[-1]
    right_cumsum = right_cumsum[::-1] + [0]
    ans = 0
    for i in range(N+1):
        ans = max(ans,left_cumsum[i] + right_cumsum[i])
    print(ans)

if __name__ == '__main__':
    main()
0