Cod sursa(job #603047)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 14 iulie 2011 12:26:22
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
const int maxn=100000005;
int n, k, i, first, last, a[maxn], p, minim, 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, min);
  
  fclose(stdin);
  fclose(stdout);
  return 0;
}