Pagini recente » Cod sursa (job #1736269) | Autentificare | Cod sursa (job #1017046) | Cod sursa (job #712302) | Cod sursa (job #1202175)
using namespace std;
#include <fstream>
ifstream fin("secventa.in");
ofstream fout("secventa.out");
const int Kmax = 500000;
const int Nmax = 500000;
int v[Nmax];
int Q[Kmax], first = 0, last = -1;
void push(int) ;
int main()
{
int i, k, n, a, MAX = -50000, x, y;
fin >> n >> k;
for(i = 0; i < n; ++i) {fin >> v[i];}
for(i = 0; i < k-1; ++i) push(i);
for(i = k-1; i < n; ++i)
{
push(i);
a = v[ Q[first] ];
if(a > MAX) MAX = a, x = 2+i-k, y = 1+i;
if(Q[first] == 1+i-k) ++first;
}
fout << x << ' ' << y << ' ' << MAX << '\n';
return 0;
}
void push(int poz)
{
while(first <= last && Q[last] > v[poz]) --last;
++last;
Q[last] = poz;
}