Cod sursa(job #1506993)

Utilizator SoniaFlorinaHorchidan Sonia-Florina SoniaFlorina Data 21 octombrie 2015 10:29:28
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iostream>
#include <climits>
using namespace std;
int n,k,i,a[5000000],dek[5000000],li,ls,baza=-INT_MAX;

int main()
{ ifstream in("secventa.in");
  ofstream out("secventa.out");
  in>>n>>k;
  for(i=1; i<=n; i++)
    in>>a[i];
  int prim=1,ultim=0;
  for(i=1; i<=n; i++)
    {while(a[i]<=a[dek[ultim]] && prim<=ultim)
            ultim--;
    ultim++;
    dek[ultim]=i;

    if(dek[prim]<=i-k)
        prim++;
    if(i>=k)
        if(a[dek[prim]]>baza)
            {baza=a[dek[prim]];
            li=i-k+1;
            ls=i;}
        else
            if(dek[prim]==baza && prim<li)
                {li=i-k+1;
                ls=i;}
    }
out<<li<<' '<<ls<<' '<<baza;
    return 0;
}