Cod sursa(job #874235)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 8 februarie 2013 00:03:29
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#define NMAX 50010
using namespace std;

int n,k,s[NMAX],m[NMAX],M[NMAX];
int main()
{
    ifstream fin("secv2.in");
    ofstream fout("secv2.out");
    fin>>n>>k;
    int x,s2=-25000,p=0,st=0,dr=0;
    for(int i=1;i<=n;i++)
    {
        fin>>x;
        if(m[i-1]<m[i-1]+x)
        {
            s[i]=i-1;
            m[i]=m[i-1];
        }
        else
        {
            s[i]=i;
            m[i]=m[i-1]+x;
        }
        M[i]=M[i-1]+x;
    }
    for(int i=k;i<=n;i++)
    {
        p=(M[i]-m[i-k]>M[i] ? M[i]-m[i-k]:M[i]);
        if(p>s2)
        {
            s2=p;
            if(M[i]-m[i-k]>M[i])
            {
                st=s[i-k];
                dr=i;
            }
            else st=0,dr=i;
        }
    }
    fout<<st<<" "<<dr<<" "<<s2;
    return 0;
}