Cod sursa(job #1668972)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 30 martie 2016 11:15:21
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 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,maxk;

int main()
{
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(k=k;k<=n;k++)
    {
        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;
                    maxk=k;
                }
            }
        }
    }
    fout<<maxok<<" "<<maxok+maxk-1<<" "<<maxi;
    fin.close();
    fout.close();
    return 0;
}