Pagini recente » Cod sursa (job #615222) | Cod sursa (job #615221) | Cod sursa (job #2882177) | Cod sursa (job #709360) | Cod sursa (job #718156)
Cod sursa(job #718156)
//============================================================================
// Name : secventa.cpp
// Author : Cristina
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <fstream>
#define DIM 500001
using namespace std;
int a[DIM],n,k,start,end,base;
void read() {
ifstream f ("secventa.in");
int i;
f>>n>>k;
for (i=1;i<=n;i++)
f>>a[i];
f.close();
}
void print() {
ofstream g ("secventa.out");
g<<start<<" "<<end<<" "<<base<<endl;
g.close();
}
void solution() {
int r,l,i,deque[DIM];
l=r=1;
deque[1]=1;
base=-DIM;
for (i=2;i<k;i++) {
while (a[deque[r]]>=a[i]&&r>=l)
r--;
r++;
deque[r]=i;
}
for(i=k;i<=n;i++) {
while (a[deque[r]]>=a[i]&&r>=l)
r--;
r++;
deque[r]=i;
if (a[deque[l]]>base) {
base=a[deque[l]];
start=i-k+1;
end=i;
}
if (deque[l]<i-k+2)
l++;
}
}
int main() {
read();
solution();
print();
return 0;
}