Pagini recente » Cod sursa (job #557364) | Cod sursa (job #2188364) | Cod sursa (job #1589979) | Cod sursa (job #1463379) | Cod sursa (job #1505057)
#include <iostream>
#include <stdio.h>
#include <fstream>
#define nmax 500005
using namespace std;
FILE* fin=fopen("secventa.in","r");
ofstream fout("secventa.out");
int dq[nmax],poz[nmax];
char s[nmax];
int main()
{long in,sf,i,x,maxim,inc,n,k,j,ok;
fscanf(fin,"%ld%ld\n",&n,&k);
fgets(s,nmax,fin);
maxim=-30999;inc=0;sf=-1;in=0;
i=0;ok=1;x=0;
for(j=0;s[j];j++)
if(s[j]==' ')
{i++;
x=x*ok;
while(sf>=in && x<dq[sf])sf--;
dq[++sf]=x;
poz[sf] =i;
if(i>=k)
if(dq[in]>maxim)
{maxim=dq[in];
inc=poz[sf]-k+1;}
if(i-poz[in] >= k-1)in++;
x=0;ok=1;
}
else if(s[j]=='-')ok=-1;
else x=x*10+s[j]-'0';
i++;
x=x*ok;
while(sf>=in && x<dq[sf])sf--;
dq[++sf]=x;
poz[sf] =i;
if(dq[in]>maxim)
{maxim=dq[in];
inc=poz[sf]-k+1;}
cout<<inc<<' '<<inc+k-1<<' '<<maxim;
}