DOANCON3 Đoạn con 3
Nộp bài giải
Điểm:
3,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Javascript, Kotlin, Pascal, Python, Scratch
Sample Input 1
7
1 2 -3 4 1 -6 2
Sample Output 1
10
Bình luận
n = int(input()) a = list(map(int, input().split()))
f1 = [0]*n f2 = [0]*n f3 = [0]*n
cur1 = a[0] f1[0] = a[0]
for i in range(1, n): if cur1 + a[i] > a[i]: cur1 = cur1 + a[i] else: cur1 = a[i] if f1[i-1] > cur1: f1[i] = f1[i-1] else: f1[i] = cur1
cur2 = -10**18 for i in range(1, n): if cur2 + a[i] > f1[i-1] + a[i]: cur2 = cur2 + a[i] else: cur2 = f1[i-1] + a[i] if f2[i-1] > cur2: f2[i] = f2[i-1] else: f2[i] = cur2
cur3 = -10**18 for i in range(2, n): if cur3 + a[i] > f2[i-1] + a[i]: cur3 = cur3 + a[i] else: cur3 = f2[i-1] + a[i] if f3[i-1] > cur3: f3[i] = f3[i-1] else: f3[i] = cur3
print(f3[n-1])
n = int(input()) a = list(map(int, input().split()))
maxsum = a[0] currentsum = a[0]
for i in range(1, n): currentsum = max(a[i], currentsum + a[i]) maxsum = max(maxsum, current_sum)
print(max_sum)
ko đề bài?
Là sao các bạn ơi ???
...