Cod sursa(job #930251)

Utilizator margikiMargeloiu Andrei margiki Data 27 martie 2013 15:30:35
Problema Secventa 2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
# include <cstdio>
# include <algorithm>
using namespace std;
int a[50001],suma[50001];
int n,s,i,x,p,u,P,U,k,VV,ok;
long long smax;
int main ()
{
    freopen ("secv2.in", "r", stdin);
    freopen ("secv2.out", "w", stdout);
    scanf ("%d%d", &n, &k);
    for (i=1; i<=n; ++i)
        {
            scanf ("%d", &a[i]);
            suma[i]=suma[i-1]+a[i];
        }
    smax=suma[k];
    P=1; U=k; p=1; u=k;
    for (i=k; i<=n; ++i)
    {
        ok=1;
        VV=i+1;
        s=suma[i]-suma[i-k];
        p=i-k+1; u=i;
        if (s>smax)
            {
                smax=s;
                P=p;
                U=u;
            }
        while (ok && VV<=n)
        {
            x=a[VV];
            if (s+x>=x)
            {
                s=s+x;
                ++u;
            }
            else ok=0;
            if (s>smax)
            {
                smax=s;
                P=p;
                U=u;
            }
            ++VV;
        }
    }
    printf ("%d %d %d\n", P, U, smax);
    return 0;
}