Pagini recente » Cod sursa (job #317823) | Cod sursa (job #258613) | Cod sursa (job #2517731) | Cod sursa (job #2254633) | Cod sursa (job #2279011)
#include<cstdio>
using namespace std;
FILE *in=fopen("secventa.in","r");
FILE *out=fopen("secventa.out","w");
int n,k,dq[500005],v[500005],maxim=(1<<31),x,y,poz;
char buffer[10005];
void citeste(int &x){
x=0;
char semn;
while(buffer[poz]<'0' || buffer[poz]>'9'){
semn=buffer[poz];
if(++poz==10000){
fread(buffer,1,10000,in);
poz=0;
}
}
while(buffer[poz]>='0' && buffer[poz]<='9'){
x=x*10+buffer[poz]-'0';
if(++poz==10000){
fread(buffer,1,10000,in);
poz=0;
}
}
if(semn=='-')
x=-x;
}
int main(){
fread(buffer,1,10000,in);
citeste(n);
citeste(k);
for(int i=1;i<=n;i++)
citeste(v[i]);
int s,d;
s=1; d=0;
for(int i=1;i<=n;i++){
while(s<=d && v[dq[d]]>=v[i]) --d;
dq[++d]=i;
if(dq[s]==i-k) ++s;
if(i>=k){
if(maxim<v[dq[s]]){
maxim=v[dq[s]];
x=dq[s]; y=dq[d];
}
}
}
fprintf(out,"%d %d %d",x,y,maxim);
}