Pagini recente » Cod sursa (job #997673) | Cod sursa (job #2065286) | Cod sursa (job #2208346) | Cod sursa (job #1845497) | Cod sursa (job #1524418)
# include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int a[500001], c[500001];
char sir[500001];
int main()
{
int n, k, s=0, d=0, maxi=-32001, i, prim, ulti;
f>>n>>k;
f.get();
f.getline(sir, 500001, EOF);
f.close();
int semn, index=0;
for (i=0; sir[i]; i++)
{
semn=1;
if (sir[i]=='-')
{
semn=-1;
i++;
}
if (isdigit(sir[i]))
{
++index;
for (; isdigit(sir[i]); i++)
a[index]=a[index]*10+(sir[i]-'0');
a[index]*=semn;
}
}
prim=ulti=1;
c[prim]=a[1];
for (i=2; i<=n; i++)
{
while (prim<=ulti && a[i]<a[c[ulti]])
ulti--;
c[++ulti]=i;
while (c[prim]<=i-k)
prim++;
if (i>=k)
{
if (a[c[prim]]>maxi)
{
maxi=a[c[prim]];
s=i-k+1;
d=i;
}
else
if (a[c[prim]]==maxi && c[prim]<s)
{
s=i-k+1;
d=i;
}
}
}
g<<s<<' '<<d<<' '<<maxi;
return 0;
}