Tìm dãy 3 phần tử liên tiếp có tổng lớn nhất

13
Lập trình C++

Bài toán. Tìm dãy 3 phần tử liên tiếp có tổng lớn nhất trong một dãy số có n phần  tử (n > 3). Đưa tổng ra màn hình. Ví dụ: 

MAX3.INP

MAX3.OUT

6

1 3 4 2 7 3

13

Code tham khảo:

#include <iostream>
using namespace std;

int main () {
    freopen("MAX3.INP","r",stdin);
    freopen("MAX3.OUT","w",stdout);
    int n, a[1000], s[1000];
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < n-2; i++) {
        s[i] = a[i] + a[i+1] + a[i+2];
    }
    int m = s[0];
    for (int i = 1; i < n-2; i++) {
        if(m < s[i]) m = s[i];
    }
    cout << m;
    return 0;
}