Pagini recente » Cod sursa (job #3203584) | Cod sursa (job #2121492) | Cod sursa (job #1803244) | Cod sursa (job #1055631) | Cod sursa (job #1024878)
//#include <fstream>
#include <cstdio>
#include <cstring>
using namespace std;
FILE *f=fopen("secventa.in","r");
FILE *g=fopen("secventa.out","w");
int L,n,k,t,maxim=-500000,nr=1,val,x;
int v[500011],deq[500011];
char s[7*500011],*q,*c;
int main(void){
register int i=0,p,u,j=0;
// f>>n>>k;
fscanf(f,"%d %d\n",&n,&k);
t=1;
fgets(s,sizeof(s),f);
deq[1]=1;
p=u=1;
q=c=s;
sscanf(s,"%d",&v[1]);
do{j++;}while(s[j]!=' ');
int dr,st;
for(i=2;i<=n;i++){
if(j<strlen(s)){
sscanf(s+j,"%d",&v[i]);
nr++;
do{j++;}while(s[j]!=' ' && nr<n && s[j]!='\0');
}
while(v[deq[u]]>v[i] && u>=p)
u--;
deq[++u]=i;
if(i-deq[p]==k)
p++;
if(i>=k)
if(v[deq[p]]>maxim){
maxim=v[deq[p]];
st=deq[p];
dr=deq[u];
}
}
fprintf(g,"%d %d %d",dr-k+1,dr,maxim);
fclose(f);
fclose(g);
return 0;
}