Pagini recente » Cod sursa (job #994842) | Cod sursa (job #1845353) | Cod sursa (job #1805437) | Cod sursa (job #1549367) | Cod sursa (job #2135155)
#include <stdio.h>
#include <fstream>
#define maxim 500005
using namespace std;
fstream f1("secventa.in", ios::in);
fstream f2("secventa.out", ios::out);
int n, k, a[maxim], prim=1, ultim, cand[maxim], in, sf, maxi=-30001;
void fastscan(int &number)
{
bool negative = false;
register int c;
number = 0;
c = f1.get();
if (c=='-')
{
negative = true;
c = f1.get();
}
for (; (c>47 && c<58); c=f1.get())
number = number *10 + c - 48;
if (negative)
number *= -1;
}
int main()
{
int i;
fastscan(n);
fastscan(k);
for(i=1; i<=n; i++) fastscan(a[i]);
for(i=1; i<=n; i++)
{
if(cand[prim]==i-k) prim++;
while((prim<=ultim)&&(a[cand[ultim]]>= a[i])) ultim--;
ultim++;
cand[ultim]=i;
if((maxi< a[cand[prim]])&&(i>=k))
{
in=i-k+1;
sf=i;
maxi=a[cand[prim]];
}
}
f2<<in<<' '<<sf<<' '<<maxi;
return 0;
}