Pagini recente » Cod sursa (job #1826159) | Cod sursa (job #730915) | Cod sursa (job #2271541) | Cod sursa (job #2568282) | Cod sursa (job #1345909)
#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[4000000];
int main()
{
ifstream cin("secventa.in");
ofstream cout("secventa.out");
cin>>n>>k;
char c[1000];
cin.getline(c,1000);
cin.getline(s,4000000);
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-k==d[st])
st++;
if(maxim<v[d[st]]&&i>=k)
maxim=v[d[st]],poz=d[dr];
}
cout<<poz-k+1<<' '<<poz<<' '<<maxim;
return 0;
}