Cod sursa(job #596654)

Utilizator costyv87Vlad Costin costyv87 Data 18 iunie 2011 10:55:42
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#include <fstream>
using namespace std;
FILE *f,*g;
int v[510000],b[510000];
int i,n,k,mx,maxi,maxj,st,dr;

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

ifstream in("secventa.in");

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

mx=-35000;

for (i=1;i<=n;i++) {
    //fscanf(f,"%d",&v[i]);
    in>>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);

}