Cod sursa(job #1643315)

Utilizator pibogaBogdan piboga Data 9 martie 2016 18:27:46
Problema Secventa Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
#include<cstring>
using namespace std;

ifstream fin ("secventa.in");
ofstream fout("secventa.out") ;

int n,k,u,p,j,x,sgn,v[500005],deq[500005],i,maxv=-30001,a,b;
long long s;
char c[500010];

int main()
{

   fin>>n>>k;

   // for (i=1;i<=n;i++)
     //   fin>>v[i];
     fin.get();
    fin.getline(c+1,500010);
    i=1;
    sgn=1;
    while (i<=strlen(c+1))
    {
        if (c[i]=='-')
            sgn=-1;
        else
        {
            x=0;
            while (c[i]!=' ' && i<=strlen(c+1))
            {
                x=x*10+(c[i]-'0');
                i++;
            }
            x*=sgn;
            v[++j]=x;
            sgn=1;
        }
        i++;
    }

    for (i=1;i<=n;i++)
    {
        while (p<=u && v[i]<v[deq[u]])
        {
            --u;
        }

        deq[++u]=i;

        if (deq[p]==i-k)
            p++;

        if (i>=k && v[deq[p]] >  maxv)
        {
                maxv=v[deq[p]];
                a=i-k+1;
                b=i;
        }

    }
  fout <<a<<' '<<b<<' '<<maxv;



    return 0;
}