Cod sursa(job #1861742)

Utilizator robertrRotaru Stefan Robert robertr Data 29 ianuarie 2017 11:27:20
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
long long n,i,k,m,cst,cdr,cstm,cdrm;
struct elem
{
    int val,poz;
}x;
deque <elem> v;
int main()
{
    f>>n>>k;
    for(i=1;i<=k;i++)
    {
        f>>x.val;
        x.poz=i;
        while(!v.empty()&&v.back().val>x.val)
            v.pop_back();
        v.push_back(x);
    }
    m=v.front().val;
    cstm = 1;
    cdrm = k;
    cst=1;cdr=k;
    for(i=k+1;i<=n;i++)
    {
        cst++;
        cdr++;
        f>>x.val;x.poz=i;
        if(v.front().poz<cst)v.pop_front();
        while(!v.empty()&&v.back().val>x.val)
            v.pop_back();
        v.push_back(x);
        if(v.front().val>m)
        {
            cstm=cst;
            cdrm=cdr;
            m=v.front().val;
        }
    }
    g<<cstm<<" "<<cdrm<<" "<<m;
    return 0;
}