Pagini recente » Cod sursa (job #2474337) | Cod sursa (job #2458309) | Cod sursa (job #2447237) | Cod sursa (job #273326) | Cod sursa (job #526111)
Cod sursa(job #526111)
//Secventa
#include <fstream>
#define MAXN 500050
using namespace std;
int n,k,a[MAXN],deque[MAXN];
int main()
{
int i,front,back,maxim,start,finish;
ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
front=1,back=0;
maxim=0,start=0,finish=0;
for(i=1;i<=k;i++)
{
while(front<=back && a[i]<a[deque[back]]) back--;
deque[++back]=i;
}
maxim=a[deque[front]];
start=1;
finish=k;
for(;i<=n;i++)
{
while(front<=back && a[i]<a[deque[back]]) back--;
deque[++back]=i;
if(deque[front]==i-k) front++;
if(a[deque[front]]>maxim)
{
maxim=a[deque[front]];
start=i-k+1;
finish=i;
}
}
g<<start<<" "<<finish<<" "<<maxim<<"\n";
f.close();
g.close();
return 0;
}