Cod sursa(job #2064175)

Utilizator TheNextGenerationAyy LMAO TheNextGeneration Data 11 noiembrie 2017 21:44:45
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
long long v[50005],sum[50005],dp[50005],poz[50005];
ifstream in("secv2.in");
ofstream out("secv2.out");
int main()
{
    int n,k;
    long long Max,p1,p2;
    in >> n >> k;
    for (int i = 1; i<=n; i++)
    {
        in >> v[i];
        sum[i] = sum[i-1]+v[i];
    }
    dp[k] = Max = sum[k];
    poz[k] = p1 = 1;
    p2 = k;
    for (int i = k+1; i<=n; i++)
    {
        if (dp[i-1]+v[i]>=sum[i]-sum[i-k])
        {
            poz[i] = poz[i-1];
            dp[i] = dp[i-1]+v[i];
        }
        else
        {
            poz[i] = i-k+1;
            dp[i] = sum[i]-sum[i-k];
        }
        if (dp[i]>Max)
        {
            Max = dp[i];
            p1 = poz[i];
            p2 = i;
        }
    }
    out << p1 << " " << p2 << " " << Max;
}