Pagini recente » Cod sursa (job #235718) | Statistici Stalinskaya Chiriac Radu (Stalinskaya_Chiriac_Radu) | Problema satisfiabilităţii formulelor logice de ordinul doi | Clasament training_day_5 | Cod sursa (job #492030)
Cod sursa(job #492030)
#include <stdio.h>
#define NMax 500005
const char IN[]="secventa.in",OUT[]="secventa.out";
int N,K;
int x,y,Max=-1;
int a[NMax],D[NMax],first,last;
void solve()
{
using namespace std;
int i;
for (i=0;i<N;i++)
{
while (first<=last && (a[i]<a[D[last]] || i-D[last]>=K))
last--;
D[++last]=i;
while (first<=last && i-D[first]>=K)
first++;
if (i==K-1)
Max=a[D[first]],x=0,y=K-1;
if (i>=K && a[D[first]]>Max)
Max= a[D[first]],x=i-K+1,y=x+K-1;
}
}
int main()
{
int i;
freopen(IN,"r",stdin);
scanf("%d%d",&N,&K);
for (i=0;i<N;i++)
scanf("%d",a+i);
fclose(stdin);
solve();
freopen(OUT,"w",stdout);
printf("%d %d %d",x+1,y+1,Max);
fclose(stdout);
return 0;
}