Pagini recente » Cod sursa (job #1924635) | Cod sursa (job #212403) | Cod sursa (job #2169311) | Cod sursa (job #144301) | Cod sursa (job #1345885)
#include <iostream>
#include <fstream>
#include <cctype>
#include <cstdlib>
#include <cstring>
#define NMAX 500000
using namespace std;
int n, k, i, j, st, sign, poz, dr, m, maxim, v[NMAX+1], d[NMAX+1];
char s[3500000];
int main()
{
ifstream cin("secventa.in");
ofstream cout("secventa.out");
cin>>n>>k;
char c[1000];
cin.getline(c,1000);
cin.getline(s,3500000);
int sign, nr;
i=0;
while(i<strlen(s))
{
sign=1;
nr=0;
if (s[i]=='-')
sign=-1,i++;
while ('0'<=s[i]&&s[i]<='9')
nr=nr*10+s[i] -'0',i++;
m++;
v[m] = nr * sign;
i++;
}
st=dr=1;
maxim=1<<20;
maxim=-maxim;
for(i=1; i<=n; i++)
{
while(st<=dr&&v[d[dr]]>=v[i])
dr--;
dr++;
d[dr]=i;
if(i-d[st]>=k)
st++;
if(maxim<v[d[st]]&&i>=k)
maxim=v[d[st]],poz=i;
}
cout<<poz-k+1<<' '<<poz<<' '<<maxim;
return 0;
}