Cod sursa(job #1347625)

Utilizator LegionHagiu Stefan Legion Data 19 februarie 2015 03:09:44
Problema Secventa 2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
int s[50001];
deque<int> coada;
int main()
{
    ifstream in("secv2.in");
    ofstream out("secv2.out");
    int i,n,k,suma=0,sumamax=-2000000000,x,y,cateelimin=0;
    in>>n;
    in>>k;
    for (i=1;i<=n;i++)
    {
        in>>s[i];
    }
    for (i=1;i<=n;i++)
    {
        coada.push_back(i);
        suma+=s[i];
        if (coada.back()-coada.front()+1>=k)
        {
            if (suma==0)
            {
                cateelimin=coada.back()-coada.front()+1;
            }
            if (suma>sumamax)
            {
                sumamax=suma;
                x=coada.front();
                y=coada.back();
            }
            if (s[coada.front()]<=0)
            {
                cateelimin--;
                suma-=s[coada.front()];
                coada.pop_front();
            }
            while (cateelimin>0)
            {
                cateelimin--;
                suma-=s[coada.front()];
                coada.pop_front();
            }
        }
    }
    out<<x<<" "<<y<<" "<<sumamax;
}