Pagini recente » Cod sursa (job #2377826) | Cod sursa (job #2963373) | Cod sursa (job #2281207) | Cod sursa (job #2245689) | Cod sursa (job #718165)
Cod sursa(job #718165)
#include <fstream>
#include <iostream>
#include <iomanip>
#define dim 500001
using namespace std;
int n,k,poz=0,min,baza,pozinit=0,a[dim];
void citire()
{
int i;
ifstream f1;
f1.open("secventa.in");
f1>>n;
f1>>k;
for(i=1;i<=n;i++)
{
f1>>a[i];
}
f1.close();
}
void scriere()
{
ofstream f2;
f2.open("secventa.out");
f2<<pozinit<<" "<<pozinit+k-1<<" "<<baza;
f2.close();
}
void prelucrare()
{
int i,st=1,dr=1;
int deque[dim];
baza=-999999999;
deque[1]=1;
for(i=2;i<=n;i++)
{
while ((a[deque[st]]>=a[i])and(dr>=st))
dr--;
dr++;
deque[dr]=i;
if (a[deque[st]]>baza)
{
baza=a[deque[st]];
pozinit=i+1-k;
}
if (deque[st]<i+2-k)
st++;
}
}
int main()
{
citire();
prelucrare();
scriere();
return 0;
}