Cod sursa(job #947105)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 6 mai 2013 18:37:46
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <deque>

using namespace std;

    int v[500005];
int main()
{
    ifstream cin("secventa.in");
    ofstream cout("secventa.out");

    int k,n,i;
    deque<int> coada;

    cin>>n>>k;
    int baza=-1;
    int st,dr;


    for(i=0;i<n;i++)
    {
        cin>>v[i];
        while(!coada.empty())
            if(i-coada.front()>=k)
                coada.pop_front();
            else
                break;

        while(!coada.empty())
            if(v[coada.front()]>=v[i])
                coada.pop_back();
            else
                break;
        coada.push_back(i);

        if(i+1>=k)
        {
            if(v[coada.front()]>baza)
            {
                baza=v[coada.front()];
                st=coada.front()+1;
                dr=st+k-1;
            }
        }
    }
    cout<<st<<' '<<dr<<' '<<baza<<'\n';

    cin.close();
    cout.close();
    return 0;
}