Cod sursa(job #2784826)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 17 octombrie 2021 14:18:55
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>

using namespace std;


int main()
{
    fstream fin("secv2.in", ios::in);
    fstream fout("secv2.out", ios::out);

    int n, k;

    fin >> n >> k;

    vector<int> s(n + 1, 0);

    for(int i = 1; i <= n; ++i) {
        int x;
        fin >> x;
        s[i] = s[i - 1] + x;
    }

    int minIdx = 0;
    int minimum = 0;
    int maxIdx = k;
    int maximum = s[k];
    int sol = maximum;
    int solMinIdx = 1;
    int solMaxIdx = k;

    for(int i = 1; i <= n - k; ++i) {
        if(s[i] < minimum) {
            minimum = s[i];
            minIdx = i;
        }
        if(s[i + k] > maximum) {
            maximum = s[i + k];
            maxIdx = i + k;
        }
        if(maximum - minimum > sol) {
            sol = maximum - minimum;
            solMinIdx = minIdx + 1;
            solMaxIdx = maxIdx;
        }
    }

    fout << solMinIdx << ' ' << solMaxIdx << ' ' << sol;

    return 0;
}