Pagini recente » Cod sursa (job #2591756) | Cod sursa (job #653592) | Cod sursa (job #1917124) | Cod sursa (job #2070057) | Cod sursa (job #2077786)
#include <fstream>
using namespace std;
int n,k,j,y,Max,nr,x,b[500005],a[500005],i,m;
char q[10000005];
ifstream f("secventa.in");
ofstream g("secventa.out");
int main()
{
f>>n>>k;
f.get();
f.get(q,10000005);
for(i=1;i<=n;i++)
{
m=1;
if(q[j]==' ')j++;
if(q[j]=='-')
{
m=-1;
j++;
}
while('0'<=q[j] && q[j]<='9')
{
a[i]=a[i]*10+q[j]-'0';
j++;
}
a[i]*=m;
}
Max=-300001;
y=1;
for(i=1;i<=n;i++)
{
while(y<=x && a[i]<a[b[x]])
{
x--;
}
x++;
b[x]=i;
if(b[y]<=i-k)y++;
if(i>=k && a[b[y]]>Max)
{
Max=a[b[y]];
nr=i;
}
}
g<<nr-k+1<<" "<<nr<<" "<<Max<<'\n';
return 0;
}