Cod sursa(job #1181167)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 1 mai 2014 23:31:14
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <deque>
using namespace std;
struct prom
{
    int nr,pos;
};
deque <prom> deck;
deque <prom> ::iterator it;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int main()
{
    int n,k,r,i,x=0,y,sol;
    fin>>n>>k;
    prom pas;y=k;
    for(i=1;i<=n;i++)
    {
        fin>>r;
        pas.nr=r;
        pas.pos=i;
        if(i<=k)
        {   it=deck.end();
            while(it->nr<r) {deck.pop_back();it--;}
            deck.push_back(pas);
            if(i==k)
            {   it=deck.begin();
                sol=it->nr;
            x=1;y=k;
            }
        }
        else
        {   it=deck.begin();
            while(it->pos<=i-k) {deck.pop_front();it++;}
            it=deck.end();
            while(it->nr<r) {deck.pop_back();it--;}
            deck.push_back(pas);
            it=deck.begin();
            if(it->nr>sol) sol=it->nr,x=it->pos,y=i;
        }
    }
    fout<<x<<" "<<y<<" "<<sol;
}