Pagini recente » Cod sursa (job #1140707) | Cod sursa (job #2534186) | Cod sursa (job #386405) | Cod sursa (job #147010) | Cod sursa (job #1643520)
#include <fstream>
#include<cstring>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout("secventa.out") ;
int n,k,u,poz,p,j,x,sgn,v[500005],deq[500005],i,maxv=-30001,a,b;
long long s;
char c[500010];
int main()
{
fin>>n>>k;
fin.get();
fin.getline(c+1,500010);
sgn=1;
for (j=1,i=1;j<=n;i++,j++)
{
if (c[i]=='-')
{
sgn=-1;
i++;
}
else
{
sgn=1;
}
x=0;
while (c[i]>='0' && c[i]<='9')
{
x=x*10+(c[i++]-'0');
}
v[j]=x*sgn;
}
for (i=1;i<=n;i++)
{
while (p<=u && v[i]<=v[deq[u]])
{
--u;
}
deq[++u]=i;
if (deq[p]==i-k)
p++;
if (i>=k && v[deq[p]] >= maxv)
{
maxv=v[deq[p]];
poz=deq[p];
// a=i-k+1;
// b=i;
}
}
i=poz;
while (v[i-1]>=maxv && i>1)
i--;
fout <<i<<' '<<max(i+k-1,poz)<<' '<<maxv;
return 0;
}