Cod sursa(job #1279646)
| Utilizator | Data | 30 noiembrie 2014 18:13:31 | |
|---|---|---|---|
| Problema | Secventa | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
#define maxn 500050
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int v[maxn], d[maxn], m = -1, i, n, k, u, p, a, b;
int main()
{
f >> n >> k;
for (i = 1; i <= n; i++)
f >> v[i];
p = 1;
u = 1;
d[u] = 1;
for (i = 2; i <= n; i++)
{
while (v[i] <= v[d[u]] && p <= u)
u--;
d[++u] = i;
if (i - d[p] == k)
p++;
if (i >= k)
{
if (m <= v[d[p]])
{
m = v[d[p]];
a = i;
}
}
}
g << a - k + 1 << " " << a << " " << m;
return 0;
}