Cod sursa(job #1669077)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 30 martie 2016 12:34:06
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <bitset>

using namespace std;
ifstream fin ("secventa.in");
ofstream fout("secventa.out");
long long n,k,i,u,p,d[500010],v[500010],ok,maxi,maxok,dr;

int main()
{
    fin>>n>>k;
    maxi=-30010;
    for(i=1;i<=n;i++)
        fin>>v[i];
    ok=0;
    p=1;
    u=1;
    d[p]=1;
    for(i=2;i<=n;i++)
    {
        while(p<=u&&v[i]<=v[d[u]])
            u--;
        u++;
        d[u]=i;
        if(i-d[p]==k)
            p++;
        if(i>=k)
        {
            ok++;
            if(maxi<v[d[p]])
            {
                maxi=v[d[p]];
                maxok=ok;
            }
        }
    }
    fout<<maxok<<" "<<maxok+k-1<<" "<<maxi;
    fin.close();
    fout.close();
    return 0;
}