Cod sursa(job #1307313)

Utilizator rangerChihai Mihai ranger Data 1 ianuarie 2015 22:01:46
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<cstdio>
#include<deque>

using namespace std;


const int N = 500003;
int n,k,i,a[N],res=-1000000,poz;
deque<int> q;

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", &a[i]);
        while (!q.empty() && a[q.back()]>a[i]) q.pop_back();
        q.push_back(i);

        if (i<k)continue;
        if (q.front()==i-k) q.pop_front();
        if (res<a[q.front()]) res=a[q.front()],poz=i-k+1;
    }
    printf("%d %d %d", poz, poz+k-1, res);
    return 0;
}