Cod sursa(job #1040513)

Utilizator TibixbAndrei Tiberiu Tibixb Data 24 noiembrie 2013 16:37:45
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
using namespace std;
int n, i, k, p, u, pf, uf, maxim, D[500003], v[500003];
FILE*fin=fopen("secventa.in","r");
ofstream fout("secventa.out");
int main(){
    fscanf(fin,"%d%d", &n, &k);
    for(i=1; i<=n; i++)
    fscanf(fin,"%d", &v[i]);
    p=1; u=0;
    maxim=-999999;
    for(i=1; i<=n; i++){
        while(p<=u && v[i]<=v[D[u]])
            u--;
        D[++u]=i;
        if(D[u]-D[p]==k)
            p++;
        if(i>=k)
            if(v[D[p]]>maxim){
                maxim=v[D[p]];
                pf=D[u]-k+1;
                uf=D[u];
            }
    }
    fout<<pf<<" "<<uf<<" "<<maxim<<"\n";
return 0;
}