Cod sursa(job #976194)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 22 iulie 2013 18:37:12
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<deque>
using namespace std;
deque<short int>d;
short int v[500002];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
unsigned n,k,i,j;
short int m;
scanf("%u%u",&n,&k);
for(i=1;i<=k;i++)
{
    scanf("%hd",&v[i]);
    while(!d.empty())
    {
        if(v[i]>d.back())
            break;
            d.pop_back();
    }
    d.push_back(v[i]);
}
m=d.front();
j=k;
for(i=k+1;i<=n;i++)
{
    scanf("%hd",&v[i]);
    if(d.size()==k)
    d.pop_front();
    while(!d.empty())
    {
        if(v[i]>d.back())
            break;
            d.pop_back();
    }
    d.push_back(v[i]);
    if(d.front()>m)
    {
        m=d.front();
        j=i;
    }
}
printf("%u %u %hd\n",j+1-k,j,m);
    return 0;
}