Cod sursa(job #1888088)

Utilizator WebDesignbyTMGhiorghiu Ioan-Viorel WebDesignbyTM Data 21 februarie 2017 22:07:18
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#define DM 6000000
using namespace std;
ifstream fi ("secv2.in");
ofstream fo ("secv2.out");

int n, a, k, st, v[DM], c;
long long s, sp;
pair <int, pair <int, long long> > mx;

int main()
{
    fi >> n >> k;
    for (int i = 1; i <= n; ++i)
        fi >> v[i];
    for (int i = 1; i <= k; ++i)
        s+=v[i];
    st = 1;
    mx.second.second = st;
    mx.second.first = k;
    mx.first = s;
    s = 0;
    for (int i = 1; i <= n; ++i)
    {
        s+=v[i];
        c = i - st - k + 1;
        if (c)
            sp+=v[st+c-1];
        if (sp < 0)
        {
            s-=sp;
            st+=c;
            sp = 0;
        }
        if (s > mx.first && i >= k)
        {
            mx.second.second = st;
            mx.second.first = i;
            mx.first = s;
        }
        c = 0;
    }
    fo << mx.second.second << ' ' << mx.second.first << ' ' << mx.first;
    return 0;
}