Pagini recente » Cod sursa (job #3254734) | Cod sursa (job #1333365) | Cod sursa (job #3260250) | Cod sursa (job #1278830) | Cod sursa (job #1524780)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k, c[5000000], a[5000000], st, dr, maxi=-99999, i;
char s[5000000];
int main()
{
f>>n>>k;
f.getline(s,5000000,EOF);
int semn,index=0;
for(i=0; s[i]; i++)
{
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;
}
}
int prim=1,ulti=0;
for(i=1; i<=n; i++)
{
while(prim<=ulti && a[i]<=a[c[ulti]])
ulti--;
ulti++;
c[ulti]=i;
if(c[prim]<=i-k)
prim++;
if(i>=k)
{
if(a[c[prim]]>maxi)
{
maxi=a[c[prim]];
st=i-k+1;
dr=i;
}
else
if(c[prim]==maxi && prim<st)
{
st=i-k+1;
dr=i;
}
}
}
g<<st<<' '<<dr<<' '<<maxi;
return 0;
}