Cod sursa(job #2200677)

Utilizator mateicosCostescu Matei mateicos Data 2 mai 2018 09:55:36
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <queue>

using namespace std;

typedef pair <int, int> ii;
deque<ii>q;
int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    int x, n ,i , k;
    int a = 0, b = 0, mx;
    scanf("%d%d", &n, &k);
    mx = 0;
    for(i = 1;i <= n;i++){
      scanf("%d", &x);

      while(!q.empty() && q.back().first >= x){
        q.pop_back();
      }
      q.push_back(ii(x, i));
      while(!q.empty() && i-q.front().second + 1 > k){
        q.pop_front();
      }
      //printf("%d ", q.size());
      if(i >= k){
        if(mx < q.front().first){
          mx = q.front().first;
          b = i;
          a = i - k + 1;
        }
      }
    }
    printf("%d %d %d", a, b, mx);
    return 0;
}