Pagini recente » Cod sursa (job #2306550) | Cod sursa (job #2549321) | Sandbox (cutiuţa cu năsip) | Cod sursa (job #2375881) | Cod sursa (job #2208702)
#include <fstream>
using namespace std;
FILE *in,*out;
const int NMAX = 500005;
int deq[NMAX], v[NMAX];
int main()
{
in = fopen("secventa.in","r");
out = fopen("secventa.out","w");
int n, k;
fscanf(in,"%d %d", &n, &k);
for(int i = 1; i <= n; i ++)
fscanf(in, "%d", &v[i]);
int st = 1, dr = 1;
deq[1] = 1;
int sol = -30005, rsol = 1, lsol = 1;
for(int i = 2; i <= n; i ++) {
while(st <= dr && v[i] < v[deq[dr]])
dr --;
deq[++dr] = i;
if(k <= i && sol < v[deq[st]]) {
sol = v[deq[st]];
rsol = i;
lsol = i - k + 1;
}
if(deq[dr] - deq[st] == k-1)
st ++;
}
fprintf(out,"%d %d %d", lsol, rsol, sol);
return 0;
}