sungdd2   4년 전

#include
#include
using namespace std;

int main() {
ios_base::sync_with_stdio(false);

int input;
cin >> input;

vector a(input);

for (int i = 0; i < input; i++) {
cin >> a[i];
}

if (input == 1)
{
cout << a[0] << '\n';
return 0;
}

int result = a[0];
int tmp = a[0];
bool check = false;

for (int i = 1; i < input; i++) {
if (a[i] < 0) {
if (i + 1 < input) {
if (tmp >= 0 && tmp > a[i] && a[i + 1] > 0) {
tmp += a[i];
continue;
}
}
if (tmp <= 0) {
if (result < a[i]) {
result = a[i];
check = true;
tmp = a[i];
}
}
else {
if (result < tmp) {
result = tmp;
tmp = 0;

}
}
}
else {
if (tmp >= 0)
tmp += a[i];
else
tmp = a[i];
}
}

if (tmp > result) {
if (!check)
cout << tmp << '\n';
}
else
cout << result << '\n';

return 0;
}

진짜 이상하네요..

sait2000   4년 전

이거 한번 해보실래요? 아 그리고 글 쓸 때 소스 추가라고 따로 코드 입력하는 부분에 코드를 넣어주세요.

nahwasa   4년 전

애초에 

if (a[i] < 0) {
일 경우엔 왜 복잡하게 처리하신건지 잘 모르겠습니다.

} else { if (tmp >= 0) tmp += a[i]; else tmp = a[i]; }

요 부분만 적절히 사용하시면 되실듯합니다.

댓글을 작성하려면 로그인해야 합니다.