Cod sursa(job #2082418)

Utilizator grecubogdanGrecu Bogdan grecubogdan Data 6 decembrie 2017 09:45:48
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
int n,k,j,y,Max,nr,x,b[500005],a[500005],i,m;
char q[10000005];
ifstream f("secventa.in");
ofstream g("secventa.out");
int main()
{
    f>>n>>k;
    f.get();
    f.get(q,10000005);
    for(i=1;i<=n;i++)
    {
        m=1;
        if(q[j]==' ')j++;
        if(q[j]=='-')
        {
            m=-1;
            j++;
        }
        while('0'<=q[j] && q[j]<='9')
        {
            a[i]=a[i]*10+q[j]-'0';
            j++;
        }
        a[i]*=m;
    }
    Max=-300001;
    y=1;
    for(i=1;i<=n;i++)
    {
        while(y<=x && a[i]<a[b[x]])
        {
            x--;
        }
        x++;
        b[x]=i;
        if(b[y]<=i-k)y++;
        if(i>=k && a[b[y]]>Max)
        {
            Max=a[b[y]];
            nr=i;
        }
    }
    g<<nr-k+1<<" "<<nr<<" "<<Max<<'\n';
    return 0;
}