Pagini recente » Cod sursa (job #2117125) | Cod sursa (job #3240384) | Cod sursa (job #88800) | Cod sursa (job #1905135) | Cod sursa (job #97526)
Cod sursa(job #97526)
#include<fstream.h>
ifstream f("secventa.in");
ofstream g("secventa.out");
int first,last,maxsol=-1000000,p,q,min,i;
int dq[500000][2];
int n,L,a[500000];
int main()
{f>>n>>L;
for(i=1;i<=n;++i)f>>a[i];
for(i=1;i<L;++i)
{while(first<=last&&dq[last][0]>a[i])--last;
++last;
dq[last][0]=a[i];
dq[last][1]=i;
}
for(i=n;i<=L;i++){while(first<=last&&dq[last][0]>a[i])--last;
++last;
dq[last][0]=a[i];
dq[last][1]=i;
while(first<=last&&dq[first][1]<i-L+1)++first;
int min=dq[first][0];
if(min>maxsol){maxsol=min;
p=i-L+1;
q=i;
}
}
g<<p<<" "<<q<<" "<<maxsol<<"\n";
f.close();
g.close();
return 0;
}