Cod sursa(job #2642992)

Utilizator ZahaZaharie Stefan Zaha Data 18 august 2020 09:20:35
Problema Secventa 2 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>
#define ll long long
using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

ll n, k;
vector<ll> sums;

int main() {
    fin >> n >> k;

    ll temp, lowest = 0, biggest = 0;
    fin >> temp;
    sums.emplace_back(temp);

    for (ll i = 1; i < n; ++i) {
        fin >> temp;
        sums.emplace_back(sums[i - 1] + temp);

        if (sums[i] < 0 && sums[i] < sums[lowest] && i <= n - k)
            lowest = i;

        if (sums[lowest] < 0) {
            if (sums[i] - sums[lowest] > sums[biggest] - sums[lowest] || biggest - lowest < k)
                biggest = i;
        } else {
            if (sums[i] > sums[biggest] || biggest - lowest < k)
                biggest = i;
        }
    }

    if (sums[lowest] < 0)
        fout << lowest + 2 << " " << biggest + 1 << " " << sums[biggest] - sums[lowest];
    else
        fout << 1 << " " << biggest + 1 << " " << sums[biggest];
}