Cod sursa(job #1507577)

Utilizator LucianTLucian Trepteanu LucianT Data 21 octombrie 2015 19:08:39
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <algorithm>
#include <deque>
#include <climits>
using namespace std;
deque <int> q;
int x,n,k,maxx=-INT_MAX,pr,ul,i,s[50005];
int main()
{
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    scanf("%d %d",&n,&k);
    //sume partiale
    for(i=1;i<=n;i++)
        scanf("%d",&x),s[i]=s[i-1]+x;
    //coada
    for(i=1;i<=n;i++)
    {
        if(i>=k)
        {
            while(q.size() && s[i-k]<s[q.back()])
                q.pop_back();
            q.push_back(i-k);
            if(maxx < s[i]-s[q.front()])
            {
                maxx=s[i]-s[q.front()];
                pr=q.front()+1;
                ul=i;
            }
        }
    }
    printf("%d %d %d",pr,ul,maxx);
    return 0;
}