Pagini recente » Cod sursa (job #455325) | Cod sursa (job #1490652) | Monitorul de evaluare | Cod sursa (job #1582058) | Cod sursa (job #2328259)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque<int>c;
int n,k,i,s,v[500001],maxim=-32000,psm,pf,ps,semn,nr,ok,j;
char cc,ss[3500005];
int main()
{
f>>n>>k;
i=1;
f.get();
f.get(ss,3500000);
j=0;
semn=1;
for(i=0;ss[i]!=0;i++)
{
nr=0;
ok=0;
if(ss[i]=='-')
{
semn=-1;
}
while(ss[i]>='0' && ss[i]<='9')
{
nr=nr*10+ss[i]-'0';
i++;
ok=1;
}
if(ok==1)
{
v[++j]=semn*nr;
semn=1;
}
}
c.push_back(1);
for(i=2;i<=n;i++)
{
while(!c.empty()&&v[c.back()]>v[i])
{
c.pop_back();
}
c.push_back(i);
if(c.back()-c.front()==k){c.pop_front();}
if(i>=k&&v[c.front()]>maxim)
{
maxim=v[c.front()];
psm=i-k+1;
pf=i;
}
}
g<<psm<<" "<<pf<<" "<<maxim;
return 0;
}