Cod sursa(job #596652)

Utilizator costyv87Vlad Costin costyv87 Data 18 iunie 2011 10:52:18
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>
FILE *f,*g;
int v[510000],b[510000];
int i,n,k,max,maxi,maxj,st,dr;

int main() {
f=fopen("secventa.in","r");
g=fopen("secventa.out","w");

fscanf(f,"%d%d",&n,&k);
st=1;
dr=0;

max=-35000;

for (i=1;i<=n;i++) {
    fscanf(f,"%d",&v[i]);
    while (st<=dr && v[b[dr]]>=v[i]) dr--;
    b[++dr]=i;
    if (b[st]==i-k) st++;

    if (i>=k) {
        if (v[b[st]]>max) {
            max=v[b[st]];
            maxi=i-k+1;
            maxj=i;
            }
        }

    }

fprintf(g,"%d %d %d",maxi,maxj,max);
fclose(g);

}