Cod sursa(job #2021515)

Utilizator VoicencuVoicencu Teodor Octavian Voicencu Data 13 septembrie 2017 20:54:55
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <deque>

using namespace std;

ofstream out("secventa.out");

int n,k,maxim=-99999999,ic,sf;
vector<int> v;
deque<int> deq;

int main()
{
    freopen("secventa.in","r",stdin);
    scanf("%d%d",&n,&k);
    v=vector<int>(n+1);
    for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);
    for(int i=1;i<=n;i++)
    {
        while(deq.begin()!=deq.end() and v[i]<=v[deq.back()]) deq.pop_back();
        deq.push_back(i);
        if(deq.front()==i-k) deq.pop_front();
        if(v[deq.front()]>maxim)
        {
            maxim=v[deq.front()];
            ic=i-k+1;
            sf=i;
        }
    }
    out<<ic<<" "<<sf<<" "<<maxim;
    return 0;
}