Pagini recente » Cod sursa (job #3257834) | Cod sursa (job #2104881) | Cod sursa (job #589643) | Cod sursa (job #2728571) | Cod sursa (job #1512589)
# include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int a[500001], c[500001];
char s[500001];
void citire();
int main()
{
int n, k, s, d, maxi=-32001, i, prim, ulti;
f>>n>>k;
citire();
i=1;
prim=1; ulti=0;
while (i<=n)
{
while (prim<=ulti && a[i]<a[c[ulti]])
ulti--;
c[++ulti]=i;
if (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;
}
}
i++;
}
g<<s<<' '<<d<<' '<<maxi;
return 0;
}
void citire()
{
f.getline(s,500001,EOF);
int sign, d=0, i;
i=0;
while (s[i])
{
sign=1;
if(s[i]=='-')
{
sign=-1;
i++;
}
if(isdigit(s[i]))
{
d++;
while (isdigit(s[i]))
{
a[d]=a[d]*10+s[i]-'0';
i++;
}
a[d]*=sign;
}
i++;
}
}