Pagini recente » Cod sursa (job #1705947) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1488034) | Cod sursa (job #1669014)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,v[5000001],deq[5000001],i,nr,z,semn,p,u,maxim,st,dr;
char sir[3500010];
int main()
{
f>>n>>k;
f.get();
f.getline(sir,3500010);
i=0;
while(sir[i]!=0)
{nr=0;
if(sir[i]=='-')
{
semn=-1;i++;
}
else
semn=1;
while(sir[i]>='0'&&sir[i]<='9')
{
nr=nr*10+sir[i]-'0';i++;
}
nr=nr*semn;
i++;
v[++z]=nr;
}
//for(i=1;i<=n;i++)
// g<<v[i]<<" ";
p=1;u=1;
maxim=-2000000;
for(i=1;i<=n;i++)
{
while(p<=u&&v[i]<=v[deq[u]])
u--;
deq[++u]=i;
if(i-k==deq[p])
p++;
if(i>=k&&v[deq[p]]>maxim)
{
maxim=v[deq[p]];
st=i-k+1;
dr=i;
}
}
g<<st<<" "<<dr<<" "<<maxim;
return 0;
}