Pagini recente » Cod sursa (job #1573561) | Cod sursa (job #1645282) | Cod sursa (job #1135385) | Cod sursa (job #294302) | Cod sursa (job #97717)
Cod sursa(job #97717)
#include <fstream.h>
#define maxim 500001
ifstream f("secventa.in");
ofstream g("secventa.out");
int first,last;
int deque[maxim][2];
int n,l,a[500000],maxsol=-1000000,p,q,i,min;
int main()
{ f>>n>>l;
for (i=1;i<=n;++i) f>>a[i];
for (i=1;i<l;++i) {
while (first<=last && deque[last][0]>a[i]) --last;
++last;
deque[last][0]=a[i];
deque[last][1]=i;
}
for (i=l;i<=n;i++){
while (first<=last && deque[last][0]>a[i]) --last;
++last;
deque[last][0]=a[i];
deque[last][1]=i;
while (first<=last && deque[first][1]<i-l+1) ++first;
int min=deque[first][0];
if (min>maxsol) { maxsol=min;
p=i-l+1;
q=i;
}
}
g<<p<<" "<<q<<" "<<maxsol;
return 0;
}