Cod sursa(job #1528517)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 19 noiembrie 2015 19:47:35
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
using namespace std;

int v[5000005],p[5000005];

int main()
{
    int n,k,x,i;
    int e,b;
    e = 0;
    b = 1;
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    scanf("%d %d",&n,&k);
    int mn = -1e9;
    int id,jd;
    for(i = 1;i <= n;i++){
        scanf("%d",&v[i]);
        while(e >= b && v[i] < v[p[e]]){
            e--;
        }
        p[++e] = i;
        if(i >= k){
           if(p[b] == i-k){
                b++;
           }
           if(mn < v[p[b]]){
                mn = v[p[b]];
                id = i-k+1;
                jd = i;
           }
        }
    }
    printf("%d %d %d",id,jd,mn);
    return 0;
}