Pagini recente » Cod sursa (job #43822) | Cod sursa (job #2386515) | Cod sursa (job #242067) | Cod sursa (job #3033258) | Cod sursa (job #1506995)
#include <fstream>
#include <iostream>
#include <climits>
using namespace std;
int n,k,i,a[5000000],dek[5000000],li,ls,baza=-INT_MAX;
int main()
{ ifstream in("secventa.in");
ofstream out("secventa.out");
in>>n>>k;
for(i=1; i<=n; i++)
in>>a[i];
int prim=1,ultim=0;
for(i=1; i<=n; i++)
{while(a[i]<=a[dek[ultim]] && prim<=ultim)
ultim--;
ultim++;
dek[ultim]=i;
if(dek[prim]<=i-k)
prim++;
if(i>=k)
{if(a[dek[prim]]>baza)
{baza=a[dek[prim]];
li=i-k+1;
ls=i;}
else
if(dek[prim]==baza && prim<li)
{li=i-k+1;
ls=i;}}
}
out<<li<<' '<<ls<<' '<<baza;
return 0;
}