Pagini recente » Cod sursa (job #11333) | Cod sursa (job #388329) | Cod sursa (job #1228615) | Cod sursa (job #598875) | Cod sursa (job #2328139)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,i,p,u,k,v[500003],b,x,nr,semn=1;
short a[500003],Max=-30005;
char ok,s[3500001];
int main()
{
f>>n>>k;
f.get();
f.get(s,3500000);
for(i=0;s[i]!=0;i++)
{
x=0;
ok=0;
if(s[i]=='-')
{
semn=-1;
}
while(s[i]>='0' && s[i]<='9')
{
x=x*10+s[i]-'0';
i++;
ok=1;
}
if(ok==1)
{
a[++nr]=semn*x;
semn=1;
}
}
p=u=1;
v[1]=1;
for(i=2;i<=n;i++)
{
while(p<=u && a[i]<a[v[u]])
{
u--;
}
v[++u]=i;
if(i-v[p]==k)
{
p++;
}
if(i>=k && a[v[p]]>Max)
{
Max=a[v[p]];
b=i;
}
}
g<<b-k+1<<" "<<b<<" "<<Max;
return 0;
}