Pagini recente » Cod sursa (job #1239534) | Cod sursa (job #1838069) | Cod sursa (job #2046631) | Cod sursa (job #2262411) | Cod sursa (job #1510041)
#include<cstdio>
#include<deque>
#include<cctype>
#include<cstring>
std::deque<int> coada;
int V[500007];
char sir[4000007];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,max=-30001,rasp;
scanf("%d %d ",&n,&k);
gets(sir);
int q=0,MAX=strlen(sir);
for(int i=1;i<=n;i++)
{
int a=0,minus=1;
if(sir[q]=='-')
minus=-1,q++;
while(isdigit(sir[q]) && q<=MAX)
{
a=a*10+(sir[q]-'0');
q++;
}
q++;
a*=minus;
V[i]=a;
}
for(int i=1;i<=n;i++)
{
while(!coada.empty() && i-coada.front()>=k)
coada.pop_front();
while(!coada.empty() && V[coada.back()]>V[i])
coada.pop_back();
coada.push_back(i);
if(i>=k)
{
if(V[coada.front()]>max)
{
max=V[coada.front()];
rasp=i;
}
}
}
printf("%d %d %d ",rasp-k+1,rasp,max);
fclose(stdin);
fclose(stdout);
return 0;
}