Pagini recente » Cod sursa (job #1677741) | Cod sursa (job #2056343) | Cod sursa (job #59554) | Cod sursa (job #1402215) | Cod sursa (job #523129)
Cod sursa(job #523129)
#include<fstream>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int n, k, i, poz1,poz2,mm,dr,st;
int v[500001],dq[500001];
void dreapta(int i)
{
while(st<=dr && v[dq[dr]]>=v[i])
--dr;
}
void stanga(int i)
{
if(i-dq[st]==k)
++st;
}
int main()
{
in>>n>>k;
for(i=1;i<=n;i++)
in>>v[i];
st=1;
dr=0;
for(i=1;i<=k;i++)
{
dreapta(i);
dq[++dr]=i;
}
mm = v[dq[st]];
for(;i<=n;i++)
{
dreapta(i);
stanga(i);
dq[++dr]=i;
if(v[dq[st]]>mm)
{
mm = v[dq[st]];
poz1=i-k+1;
poz2=i;
}
}
out<<poz1<<" "<<poz2<<" "<<mm;
return 0;
}