Pagini recente » Cod sursa (job #969067) | Cod sursa (job #2890409) | Cod sursa (job #1477109) | Cod sursa (job #2754288) | Cod sursa (job #343794)
Cod sursa(job #343794)
#include<cstdio>
#include<deque>
#define N 500009
using namespace std;
deque <int> D
int main()
{
int n,k,v[N],i,max=-N,q,st=0,stp=1;
char s[N*7];
freopen ("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d\n",&n,&k);
fgets(s,N,stdin);
q=strlen(s);
n=0;
for (i=0;i<=q;++i)
if (s[i]=='-') stp=-1;
else
if ((s[i]>='0')&& (s[i]<='9'))
st=st*10+s[i]-'0';
else
{
n++;
v[n]=stp*st;
stp=1;st=0;
}
D.push_back(1);
for (i=2;i<=n;++i)
{
scanf("%d",&v[i]);
while (!D.empty() && D.front()<=i-k)
D.pop_front();
while (!D.empty() && v[D.back()]>v[i])
D.pop_back();
D.push_back(i);
if ((i>=k) && (v[D.front()]>max))
{
max=v[D.front()];
st=i-k+1;
stp=i;
}
}
printf("%d %d %d",st,stp,max);
return 0;
}