Pagini recente » Cod sursa (job #2027122) | Cod sursa (job #2427545) | Cod sursa (job #1775888) | Cod sursa (job #1641234) | Cod sursa (job #1728257)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, number, D[500005], first, last, bestSol = -(1 << 30), bestPoz, poz[500005];
void solve()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
fin >> n >> k;
for(int i = 1; i <= n; ++i){
fin >> number;
while(first <= last && number <= D[last])
last--;
D[++last] = number;
poz[last] = i;
if(i - poz[first] >= k) ++first;
if(i >= k && D[first] > bestSol){
bestSol = D[first];
bestPoz = i;
}
}
fout << bestPoz - k + 1 << ' ' << bestPoz << ' ' << bestSol;
}
int main()
{
solve();
return 0;
}