Cod sursa(job #1493695)

Utilizator EmplopiStefan Nitu Emplopi Data 29 septembrie 2015 19:56:11
Problema Secventa Scor 60
Compilator c Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>

int v[500000], indice[500000];

int main(){
    FILE *fin, *fout;
    int n, k, i, i2, y, max, nr, incep, mem;
    fin=fopen("secventa.in", "r");
    fout=fopen("secventa.out", "w");
    fscanf(fin, "%d%d%d", &n, &k, &v[0]);
    i2=1;
    indice[0]=0;
    for(i=1;i<k;i++){
        fscanf(fin, "%d", &nr);
        while(nr<=v[i2-1] && i2>0)
            i2--;
        v[i2]=nr;
        indice[i2]=i;
        i2++;
    }
    printf("%d %d", v[0], indice[0]);
    max=v[0];
    mem=indice[0];
    y=0;
    incep=0;
    for(i=k;i<n;i++){
        fscanf(fin, "%d", &nr);
        while(nr<=v[i2-1] && i2>y)
            i2--;
        v[i2]=nr;
        indice[i2]=i;
        if(indice[y]==incep)
            y++;
        if(v[y]>max){
            max=v[y];
            mem=incep+1;
        }
        i2++;
        incep++;
    }
    fprintf(fout, "%d %d %d", mem+1, mem+k, max);
    fclose(fin);
    fclose(fout);

    return 0;
}