Pagini recente » Cod sursa (job #1773333) | Cod sursa (job #1683061) | Cod sursa (job #2862184) | Cod sursa (job #1791787) | Cod sursa (job #815364)
Cod sursa(job #815364)
#include<fstream>
#define Nmax 500010
#define INFI 300010
using namespace std;
int n, k, a[Nmax], l, r, c[Nmax], dr, minim;
int main()
{
ifstream f("secventa.in");
ofstream h("secventa.out");
f >> n >> k;
for (int i = 1; i <= n; ++i)
f >> a[i];
f.close();
minim = - INFI;
l = 1;
r = 0;
for (int i = 1; i <= n; ++i)
{
while (l <= r && a[i] <= a[c[r]])
--r;
c[++r] = i;
if (i - k == c[l])
++l;
if (minim < a[c[l]] && i >= k)
{
minim = a[c[l]];
dr = i;
}
}
h << dr + 1 - k << " " << dr << " " << minim << '\n';
h.close();
return 0;
}