Cod sursa(job #1780965)

Utilizator lauratalaatlaura talaat lauratalaat Data 16 octombrie 2016 17:01:24
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#include<deque>
using namespace std;
deque<int>d1,d2;
int main(){
    int n,k,max,nr,i,inc,sf;
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    max=-999999999;
    scanf("%d",&nr);
    d1.push_front(nr);
    d2.push_front(1);
    for(i=2;i<=n;i++){
        scanf("%d",&nr);
        while(!d1.empty()&&nr<d1.back()){
            d1.pop_back();
            d2.pop_back();
        }
        d1.push_back(nr);
        d2.push_back(i);
        if(i>=k){
            while(d2.back()-d2.front()+1>k){
                d1.pop_front();
                d2.pop_front();
            }
            if(d1.front()>max){
                max=d1.front();
                inc=i-k+1;
                sf=i;
            }
        }
    }
    printf("%d %d %d\n",inc,sf,max);
    return 0;
}