Pagini recente » Istoria paginii runda/creare/clasament | Cod sursa (job #2003717) | Cod sursa (job #1774482) | Rating Andreea Tudor (andreeatudor02) | Cod sursa (job #288814)
Cod sursa(job #288814)
#include <stdio.h>
#define max 524288
#define IN "secventa.in"
#define OUT "secventa.out"
FILE *fin=fopen(IN,"r");
FILE *fout=fopen(OUT,"w");
int n,k;
int maxim,prima,ultima,st,dr;
int v[max],deque[max];
int main()
{
int i;
fscanf(fin,"%d %d",&n,&k);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
for(i=1,maxim=-31000,st=1,dr=0;i<=n;i++)
{
while(st<=dr && v[i]<=v[deque[dr]])
--dr;
deque[++dr]=i;
if(deque[st]==i-k)
++st;
if(i>=k)
if(v[deque[st]]>maxim)
{
maxim=v[deque[st]];
prima=i-k+1;
ultima=i;
}
}
fprintf(fout,"%d %d %d",prima,ultima,maxim);
fclose(fout);
return 0;
}