Cod sursa(job #597944)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 24 iunie 2011 01:04:49
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;

int a[6000001];
int n,k;
int s=-2000000000,best;
int x=0,y=0,t=0;
int i;
bool b=0;

int main()
{
    ifstream f("secv2.in");
    ofstream g("secv2.out");

    f >> n >> k;
    for (i=1; i<=n; i++)
    {
        f >> a[i];
        if (a[i]>0) b=1;
    }
    for (i=2; i<=n; i++)
        a[i]+=a[i-1];
    if (b) {
    int min=0;
    for (i=1; i<=n; i++)
    {
        best=a[i]-min;
        if (min>a[i])
        {
            min=a[i];
            t=i+1;
        }
        if (best>s && i-t+1>=k)
        {
            s=best;
            x=t;
            y=i;
        }
    }
    if (x==0 || x>y) x=1;
    if (s<0) x=y;
    } else
    {
        s=-2000000000;
        a[0]=0;
        for (i=k; i<=n; i++)
            if (s<a[i]-a[i-k])
            {
                s=a[i]-a[i-k];
                y=i;
            }
        x=y-k+1;
    }
    g << x << ' ' << y << ' ' << s;
    return 0;
}