Cod sursa(job #1527958)

Utilizator vancea.catalincatalin vancea.catalin Data 18 noiembrie 2015 21:35:41
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;
fstream fin("secventa.in",ios::in),fout("secventa.out",ios::out);
int n,c,maxim=-999999,pi,pf;
deque <pair<short,short> > d;
pair<short,short> b;
int main()
{
    int i,n,k,a;
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>a;
        while(!d.empty()&&d.back().first>a)
        {
            d.pop_back();
        }
        d.push_back(make_pair(a,i));
        b=d.front();
        d.pop_front();
        while(!d.empty()&&(d.back().second-b.second>=k)&&b.first<=d.front().first)
        {
            b=d.front();
            d.pop_front();
        }
        d.push_front(b);
        if(d.front().first>maxim&&d.back().second-d.front().second+1>=k)
        {
            maxim=d.front().first;
            pi=d.front().second;
            pf=i;
        }
    }
    fout<<pi<<" "<<pf<<" "<<maxim;
}