Cod sursa(job #2135153)

Utilizator Laura_CorneiLaura Maria Cornei Laura_Cornei Data 18 februarie 2018 17:15:55
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
#define maxim 500005
using namespace std;
FILE *f1=fopen("secventa.in", "r");
FILE *f2=fopen("secventa.out", "w");
int n, k, a[maxim], prim=1, ultim, cand[maxim], in, sf, maxi=-30001;
int main()
{
    int i;
    fscanf(f1, "%d%d", &n, &k);
    for(i=1; i<=n; i++) fscanf(f1, "%d", &a[i]);
    for(i=1; i<=n; i++)
    {
        if(cand[prim]==i-k) prim++;
        while((prim<=ultim)&&(a[cand[ultim]]>= a[i])) ultim--;
        ultim++;
        cand[ultim]=i;

        if((maxi< a[cand[prim]])&&(i>=k))
        {
            in=i-k+1;
            sf=i;
            maxi=a[cand[prim]];
        }
    }
    fprintf(f2, "%d %d %d", in, sf, maxi);
    return 0;
}