Cod sursa(job #604474)

Utilizator GrimpowRadu Andrei Grimpow Data 22 iulie 2011 17:21:02
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
#include <fstream>
using namespace std;
int v[510000],b[510000];
int i,n,k,mx,maxi,maxj,st,dr;

int main() {
FILE *f=fopen("secventa.in","rt");
FILE *g=fopen("secventa.out","wt");



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

mx=-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]]>mx) {
            mx=v[b[st]];
            maxi=i-k+1;
            maxj=i;
            }
        }

    }

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

}