Cod sursa(job #2359049)

Utilizator CleliaClelia Maria Dobrescu Clelia Data 28 februarie 2019 16:15:59
Problema Secventa Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <deque>
using namespace std;
deque <int> d;
int v[500005];
int main(){
    FILE *fin=fopen("secventa.in","r");
    FILE *fout=fopen("secventa.out","w");
    int n,k,i,maxi=-30001,poz;
    fscanf (fin,"%d %d",&n,&k);
    v[0]=v[n+1]=-30001;
    for (i=1;i<=n;i++){
        fscanf (fin,"%d",&v[i]);
        while (!d.empty() && d.front()<i-k+1)
            d.pop_front();
        while (!d.empty() && v[d.back()]>v[i])
            d.pop_back();
        d.push_back(i);
        if (i>=k)
            if (v[d.front()]>maxi){
                maxi=v[d.front()];
                poz=d.front();
            }
    }
    i=poz;
    while (v[i]>=maxi)
        i--;
    i++;
    fprintf (fout,"%d %d %d",i,i+k-1,maxi);
    return 0;
}