출처: https://cses.fi/problemset/task/1643
문제 설명
Given an array of n integers, your task is to find the maximum sum of values in a contiguous, nonempty subarray.
입력
The first input line has an integer n: the size of the array.
The second line has n integers x_1, x_2,…,x_n: the array values.
출력
Print one integer: the maximum subarray sum.
입력 예
8
-1 3 -2 5 3 -5 2 2
출력 예
9
제약조건
- 1 <= n <= 2x10^5
- −10^9 <= x_i <= 10^9
문제 풀이
배열에 값을 읽어들이면서, 부분합(1~ k) 을 기록한다.
새로운 배열값과 부분합을 비교해서 최대값을 기록한다.
프로그램 내용
더보기
...
long num_array[nNum] = {0};
long best = -1000000007, sum = -1000000007;
for (int idx = 0; idx < nNum; idx++)
cin >> num_array[idx];
sum = max(num_array[idx],sum+num_array[idx]);
best = max(best,sum);
...
Sorting and Searching ( link )
'CSES' 카테고리의 다른 글
CSES 2. Playlist (1141) (0) | 2019.09.28 |
---|---|
CSES 2. Stick Lengths (1074) (0) | 2019.09.26 |
CSES 2. Sum of Two Values (1640) (0) | 2019.09.26 |
CSES 2. Movie Festival (1629) (0) | 2019.09.26 |
CSES 2. Restaurant Customers (1619) (0) | 2019.09.25 |