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