Cod sursa(job #1594157)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 9 februarie 2016 11:25:40
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <deque>

#define NMax 500005
#define INF 0x3f3f3f3f
using namespace std;

deque<int> deq;
int n,k,a[NMax],mx = -INF,K,inc,sf,dr;

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&K);
    for(int i = 1; i <= n; ++i){
        scanf("%d",&a[i]);
    }k = K;

        for(int i = 1; i <= n; ++i){
            while(!deq.empty() && a[i] <= a[deq.back()]){
                deq.pop_back();
            }
            deq.push_back(i);

            if(deq.front() <= i - k)
                deq.pop_front();
            if(i >= k){
                if(a[deq.front()] > mx){
                    mx = a[deq.front()];
                    dr = i;
                }
            }
        }
    printf("%d %d %d",dr - k + 1,dr,mx);
    return 0;
}