Cod sursa(job #2295454)

Utilizator dragostanTantaru Dragos Constantin dragostan Data 3 decembrie 2018 17:55:45
Problema Secventa 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;
ifstream cin("secv2.in");
ofstream cout("secv2.out");
const int DIM = 50001;

long long sir[DIM], s[DIM];
int n, k;
int main()
{
    cin >> n >> k;
    long long sc = 0, ind1 = 1, ind2 = 1, sm = -25000 * DIM, i1 = 1, i2;
    for(int i = 1; i <= n; ++i)
    {
        cin >> sir[i];
        s[i] = s[i - 1] + sir[i];
        if(i <= k)
        {
            sc += s[i];
            ind2 = i;
        }
        else
        {
            if(sc + sir[i] <= s[i] - s[i - k])
            {
                sc = s[i] - s[i - k];
                ind1 = i - k + 1;
                ind2 = i;
            }
            else if(sc + sir[i] > s[i] - s[i - k])
            {
                sc += sir[i];
                ind2 = i;
            }

            if(sc > sm)
            {
                sm = sc;
                i1 = ind1;
                i2 = ind2;
            }
        }
    }
    cout << i1 << ' ' << i2 << ' ' <<sm;
    return 0;
}