Cod sursa(job #1181168)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 1 mai 2014 23:41:22
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <deque>
using namespace std;
deque <int> deck;
deque <int> ::iterator it;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int main()
{
    int n,k,i,x=0,y,sol;
    fin>>n>>k;int v[n];
    y=k;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        if(i<=k)
        {
            while(!deck.empty()&&v[i]<=v[deck.back()]) deck.pop_back();
            deck.push_back(i);
            if(i==k)
            {
                sol=v[deck.front()];
            x=1;y=k;
            }
        }
        else
        {
            while(!deck.empty()&& deck.front()<=i-k) deck.pop_front();
            while(!deck.empty()&& v[deck.back()]>v[i]) deck.pop_back();
            deck.push_back(i);
            if(v[deck.front()]>sol) sol=v[deck.front()],x=deck.front(),y=i;
        }
    }
    fout<<x<<" "<<y<<" "<<sol;
}