Pagini recente » Cod sursa (job #1701949) | Cod sursa (job #67182) | Cod sursa (job #1157458) | Cod sursa (job #959717) | Cod sursa (job #931317)
Cod sursa(job #931317)
#include<cstdio>
#include<deque>
#include<cstring>
#define nmax 500010
using namespace std;
deque<int>q;
int n,k,i,x[nmax],crt,sol=-30010,ok,poz,nr;
char sir[4000000],sep[]=" ",*p,s[7];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d\n", &n, &k);
fgets(sir,4000000,stdin);
p=strtok(sir,sep);
while(p)
{
ok=1;poz=0;++nr;
strcpy(s,p);
if(s[0]=='-'){ok=0;poz=1;}
for(i=poz;i<strlen(s);++i)
x[nr]=x[nr]*10+(s[i]-'0');
if(ok==0)x[nr]=-x[nr];
p=strtok(NULL,sep);
}
for(i=1;i<=n;i++)
{
while(q.size()&&x[q.back()]>=x[i])
q.pop_back();
q.push_back(i);
if(q.front()==i-k)
q.pop_front();
if(i>=k&&x[q.front()]>sol)
{
sol=x[q.front()];
crt=i;
}
}
printf("%d %d %d\n", crt-k+1, crt, sol);
return 0;
}