Pagini recente » Cod sursa (job #988921) | Cod sursa (job #1367370) | Cod sursa (job #1422307) | Cod sursa (job #2644541) | Cod sursa (job #1181177)
#include <cstdio>
#include <deque>
#define lmax 5000000
using namespace std;
deque <int> d;
char buf[lmax];
int main()
{ freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,x=0,y,j=0,semn,sol=-100000000;
scanf("%d %d\n",&n,&k);
int v[n];
fgets(buf,lmax,stdin);
y=k;
for(i=1;i<=n;i++)
{
v[i]=0;
semn=1;
if(buf[j]=='-') semn=-1,j++;
while(buf[j]!=' ' && buf[j]!='\n') v[i]=v[i]*10+buf[j]-'0',j++;
j++;
v[i]*=semn;
while(!d.empty()&&v[i]<=v[d.back()]) d.pop_back();
d.push_back(i);
if(d.front()==i-k) d.pop_front();
if(v[d.front()]>sol&&i>=k)
{
sol=v[d.front()];
x=i-k+1;
y=i;
}
}
printf("%d %d %d\n",x,y,sol);
}