Cod sursa(job #1955863)

Utilizator ilieilie vieru ilie Data 6 aprilie 2017 12:04:31
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;
int first=1, last=1, dr=1, st=1, v[500005], d[500005], y, n, k, bmax, i, start;
ifstream f("secventa.in");
ofstream g("secventa.out");
void add(int x)
{
    v[++last]=x;
    while(d[dr]>x) dr--;
    d[++dr]=x;
}
void del()
{
    int x;
    x=v[first];
    first++;
    if(d[st]==x) st++;
}
int main()
{
    f>>n>>k;
    f>>y;
    v[1]=d[1]=y;
    for(i=2;i<=k;++i)
    {
        f>>y;
        add(y);
    }
    bmax=d[st], start=1;
    for(i=k+1;i<=n;++i)
    {
        del();
        f>>y;
        add(y);
        if(d[st]>bmax) bmax=d[st], start=i-k+1;
    }
    g<<start<<" "<<start+k-1<<" "<<bmax<<"\n";
    return 0;
}