Pagini recente » Cod sursa (job #2388235) | Cod sursa (job #1210552) | Cod sursa (job #916058)
Cod sursa(job #916058)
#include<stdio.h>
#include<deque>
#include<ctype.h>
using namespace std;
deque<int> q;
int a[500005];
char s[4000000];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int next,n,k,i,semn,poz=-1,sol=-30001;
scanf("%d %d\n",&n,&k);
gets(s);next=0;
for(i=1;i<=n;i++)
{
if(s[next]=='-')
semn=-1,next++;
else semn=1;
while(isdigit(s[next]))
a[i]=a[i]*10+s[next++]-'0';
next++;
a[i]=a[i]*semn;
}
for(i=1;i<=n;i++)
{
while(!q.empty() && a[q.back()]>=a[i])
q.pop_back();
q.push_back(i);
if(i-q.front()==k) q.pop_front();
if(i>=k && a[q.front()]>sol)
{
sol=a[q.front()];
poz=i;
}
}
printf("%d %d %d\n",poz-k+1,poz,sol);
return 0;
}