Pagini recente » Cod sursa (job #2246052) | Cod sursa (job #195587) | Cod sursa (job #1005058) | Cod sursa (job #1604024) | Cod sursa (job #1024866)
#include<cstdio>
#include<cstring>
int nmax,n,k,x,i,j,semn,nr,p,u,in,fin,v[500001],d[500001];
char s[4000001];
FILE *f,*g;
int main(){
f=fopen("secventa.in","r");
g=fopen("secventa.out","w");
fscanf(f,"%d%d\n",&n,&k);
fgets(s,5000000,f);
n=0;
for(i=0;s[i]!=0;i++){
if(s[i]>='0'&&s[i]<='9')
x=x*10+s[i]-'0';
else if(s[i]=='-')
semn=-1;
else {
v[++n]=x*semn;
x=0;
semn=1;
}
}
p=1;
u=0;
nmax=-30001;
for(i=1;i<=n;i++){
while(v[i]<v[d[u]] && u>=p){
u--;
}
d[++u]=i;
if(i>=k){
if(i-d[p]==k)
p++;
if(v[d[p]]>nmax){
nmax=v[d[p]];
in=i-k+1;
fin=i;
}
}
}
fprintf(g,"%d %d %d",in,fin,nmax);
fclose(f);
fclose(g);
return 0;
}