Cod sursa(job #603050)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 14 iulie 2011 12:29:32
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
//#include<fstream>
//using namespace std;
#include<cstdio>
const int maxn=100000005;
int n, k, i, first, last, a[maxn], p, minim=-30001, deque[maxn];
//ifstream f("secventa.in");
//ofstream g("secventa.out");

int main()
{ freopen("secventa.in", "r", stdin);
  freopen("secventa.out", "w", stdout);
  
  //f>>n>>k;
  scanf("%d %d", &n, &k);
  for(i=1; i<=n; ++i) //f>>a[i];
	                  scanf("%d", &a[i]);
  first=1, last=0;
  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]]>minim) { minim=a[deque[first]];
														  p=i;
						                                }
                      }
 // g<<p-k+1<<" "<<p<<" "<<minim<<"\n";
    printf("%d %d %d\n", p-k+1, p, minim);
  
  fclose(stdin);
  fclose(stdout);
  return 0;
}