Pagini recente » Cod sursa (job #402315) | Cod sursa (job #430434) | Cod sursa (job #2098759) | Cod sursa (job #201194) | Cod sursa (job #907439)
Cod sursa(job #907439)
#include <fstream>
using namespace std;
ofstream fout ("secventa.out");
ifstream fin ("secventa.in");
int n,k,front,back,i,d[500010];
int v[500010],maxim,inceput;
int main () {
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
front = 1; back = 0; maxim=-30000;
for (i=1;i<=n;i++) {
while (front<=back && v[i] <= v[d[back]]) back --;
d[++back]= i;
if (i - d[front] == k)
front ++;
if (i>=k)
if (v[d[front]] > maxim) {
maxim=v[d[front]];
inceput=d[front];
}
}
fout << inceput << " " << inceput+k-1 << " " << maxim << "\n";
return 0;
}