Cod sursa(job #603042)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 14 iulie 2011 12:03:29
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<cstdio>
const int maxn=100000005;
int n, k, i, first, last, a[maxn], p, min, deque[maxn];

int main()
{ freopen("secventa.in", "r", stdin);
  freopen("secventa.out", "w", stdout);
  
  scanf("%d %d", &n, &k);
  for(i=1; i<=n; ++i) scanf("%d", &a[i]);
  first=1, last=0;
  //min=-30;
  for(i=1; i<=n; ++i) { while(first<=last && a[i]<=a[deque[last]]) last--;
						deque[++last]=i;
						if(deque[first]==i-k) first++;
					    if(i>=k && a[deque[first]]>min) { min=a[deque[first]];
														  p=i;
						                                }
                      }
  printf("%d %d %d\n", p-k+1, p, min);
  
  fclose(stdin);
  fclose(stdout);
  return 0;
}