Cod sursa(job #1565084)

Utilizator tudorcomanTudor Coman tudorcoman Data 10 ianuarie 2016 13:24:22
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb

#include <cstdio>
#include <deque>

const int maxN = 500000;
std :: deque<int> D;
int v[maxN], N, K, pos;
int ans = -(1 << 30);

int main() {
  freopen("secventa.in", "r", stdin);
  freopen("secventa.out", "w", stdout);

  scanf("%d %d", &N, &K);
  for(register int i = 0; i < N; ++ i) {
    scanf("%d", &v[i]);
    while(!D.empty() and v[i] < v[D.back()])
      D.pop_back();
    D.push_back(i);
    if(i - D.front() >= K)
      D.pop_front();
    if(i >= K - 1 and v[D.front()] > ans) {
      ans = v[D.front()];
      pos = i - K + 1;
    }
  }
  printf("%d %d %d\n", pos + 1, pos + K, ans);
  return 0;
}