Pagini recente » Rating Oana Florescu (FMI_OanaFlorescu) | Rating Pop Alin (Alin1919) | Cod sursa (job #1035671) | Cod sursa (job #650172) | Cod sursa (job #2036340)
#include <fstream>
#define maxn 500001
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k;
int A[maxn], Deque[maxn],mini=0,lu;
char s[maxn*7];
int main()
{ f>>n>>k;
f.get();
f.getline(s, sizeof(s));
int i=0;
for(int l=1; l<=n; l++)
{ int semn=1;
while(s[i]!=' ' && s[i])
{
if(s[i]=='-')
{
semn=-1;
i++;
}
A[l]=A[l]*10+s[i]-'0';
i++;
}
i++;
A[l]*=semn;
}
int Front = 1, Back = 0;
A[0]=-300001;
for (int i = 1; i <= n; i++)
{
while (Front <= Back && A[i] <= A[ Deque[Back] ]) Back--;
Deque[++Back] = i;
if (Deque[Front] == i-k) Front++;
if (i >= k) if(A[ Deque[Front]]>mini) {mini=A[Deque[Front]]; lu=i;}
}
g<<lu-k+1<<' '<<lu<<' '<<mini;
g.close(); return 0;
}