Cod sursa(job #1257174)

Utilizator ASTELOTudor Enescu ASTELO Data 7 noiembrie 2014 12:57:39
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
#include<queue>
using namespace std;
deque<int> v,q;
int n,k,i,j,x,l1,l2,mini=-1000000;
int main ()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
    {
    scanf("%d",&x);
    if(!q.empty()&&q.front()+k<=i)
        {
        v.pop_front();
        q.pop_front();
        }
    while(!v.empty()&&x<=v.back())
        {
        x=v.back();
        v.pop_back();
        q.pop_back();
        }
    v.push_back(x);
    q.push_back(i);
    if(i>=k)
        {
        int o=v.front();
        if(o>mini)
            {
            l1=i-k+1;
            l2=i;
            mini=o;
            }
        }
    }
printf("%d %d %d",l1,l2,mini);
return 0;
}