Pagini recente » Cod sursa (job #1987751) | Cod sursa (job #1663750) | Cod sursa (job #771731) | Cod sursa (job #2574334) | Cod sursa (job #2258591)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int N, K, maxEl = INT_MIN, st, dr, v[500005];
int deq[500005], stdeq, drdeq;
int main()
{
fin >> N >> K;
for(int i = 1; i <= N; i++)
fin >> v[i];
stdeq = 1, drdeq = 0;
for(int i = 1; i <= N; i++)
{
while(drdeq && v[i] <= v[drdeq])
drdeq--;
deq[++drdeq] = i;
if(deq[drdeq] - deq[stdeq] >= K)
++stdeq;
if(i >= K)
{
if(v[deq[stdeq]] > maxEl)
{
maxEl = v[deq[stdeq]];
st = i - K + 1;
dr = i;
}
}
}
fout << st << ' ' << dr << ' ' << maxEl;
return 0;
}