Pagini recente » Cod sursa (job #2399882) | Cod sursa (job #1634752) | Cod sursa (job #1605362) | Cod sursa (job #2449901) | Cod sursa (job #1338800)
#include<fstream>
#include<cstdio>
#define MAX 500000
using namespace std;
int v[MAX+1];
int st[MAX+1];
int ic,sf;
int main(){
//freopen ("secventa.in","r",stdin);
ifstream f("secventa.in");
freopen ("secventa.out","w",stdout);
int n,i,k,max,poz;
//scanf ("%d%d",&n,&k);
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
//scanf ("%d",&v[i]);
sf=0;
for(i=1;i<=k;i++){
while(sf>0 &&v[st[sf-1]]>=v[i]) sf--;
st[sf]=i;
sf++;
}
ic=0;
max=v[st[ic]];
poz=k;
for(;i<=n;i++){
while(sf>ic &&v[i]<=v[st[sf-1]]) sf--;
st[sf]=i;
sf++;
if (st[ic]==i-k) ic++;
if (v[st[ic]]>max){
max=v[st[ic]];
poz=i;
}
}
printf ("%d %d %d",poz-k+1,poz,max);
f.close();
return 0;
}