Pagini recente » Cod sursa (job #2616766) | Cod sursa (job #564960) | Cod sursa (job #631464) | Cod sursa (job #214058) | Cod sursa (job #1524721)
# include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int a[500001], prim, ulti, c[500001], index;
char s[500001];
void citire();
int main()
{
int n, k, s, d, maxi=-32001, i;
f>>n>>k;
f.get();
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()
{
int i;
f.getline (s, 500001, EOF);
for (i=0; s[i]; i++)
{
int semn=1;
if (s[i]=='-')
{
semn=-1;
i++;
}
if (isdigit(s[i]))
{
index++;
for (; isdigit(s[i]); i++)
a[index]=a[index]*10+(s[i]-'0');
a[index]*=semn;
}
}
}