max(a,b){return a>b?a:b;} b=1<<17; N,D,K,x[1<<19],j,k; l,r,L,R; i,t; long m; main(){ for(scanf("%d%d%d",&N,&D,&K);~scanf("%d",x+b+i++);); for(i=b;--i;)x[i]=max(x[i*2],x[i*2+1]); for(i=0;i>1!=r>>1;l>>=1,r>>=1){ l&1||(L=max(L,x[l^1])); r&1&&(R=max(R,x[r^1])); } if((t=max(L,R)-x[b+i]-m)>0){ j=i; m+=t; } } if(m){ for(k=j;x[b+k]-x[b+j]!=m;++k); printf("%ld\n%d %d\n",m*K,j,k); }else{ puts("0"); } return 0; }