Pagini recente » Cod sursa (job #1389750) | Cod sursa (job #124408) | Cod sursa (job #2769120) | Cod sursa (job #317257) | Cod sursa (job #1770220)
#include <iostream>
#include<cstdio>
#define Nmax 500001
using namespace std;
long long n,k,i,a[Nmax],Deque[Nmax],Front,Back,mx=-30005,imx,jmx;
#define DIM 10000
char buff[DIM];
int poz=0;
void citeste(long long &numar)
{
numar = 0;
char semn='+';
while (buff[poz] < '0' || buff[poz] > '9')
{
semn = buff[poz];
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
if (semn == '-')
numar = -numar;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
cin>>n>>k;
for(i=1;i<=n;i++)
citeste(a[i]);
Front=1;
Back=0;
for(i=1;i<=n;i++)
{
while(Front<=Back && a[i]<=a[Deque[Back]])
Back--;
Deque[++Back]=i;
if(Deque[Front]==i-k)
Front++;
if(i>=k)
if(a[Deque[Front]]>mx)
{
mx=a[Deque[Front]];
imx=i-k+1;
jmx=i;
}
}
cout<<imx<<' '<<jmx<<' '<<mx;
}