Cod sursa(job #2707383)

Utilizator EusebiudistrugatorulLionel Messi Eusebiudistrugatorul Data 16 februarie 2021 21:10:49
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int sum[50001];

int main() {
    int n, k, nr, sum_max, sum_min = 0, pos_min = 0, i_pos_min = 0;
    fin >> n >> k;
    int pos_1 = 1, pos_2 = k;
    for (int i = 1; i <= n; ++i) {
        fin >> nr;
        sum[i] += sum[i - 1] + nr;
    }
    for (int i = 1; i <= n; ++i) {
        if (i <= k) {
            sum_max = sum[k];
        } else if (sum[i] - sum_min > sum_max) {
            sum_max = sum[i] - sum_min;
            pos_1 = pos_min + 1;
            pos_2 = i;
        }
        if (i - i_pos_min == k) {
            i_pos_min++;
            if (sum[i_pos_min] < sum_min) {
                sum_min = sum[i_pos_min];
                pos_min = i_pos_min;
            }
        }
    }
    fout << pos_1 << ' ' << pos_2 << ' ' << sum_max;
    return 0;
}