Pagini recente » Cod sursa (job #1467039) | Cod sursa (job #2029744) | Cod sursa (job #2496374) | Cod sursa (job #354001) | Cod sursa (job #2026798)
#include <fstream>
//FILE *f1 = fopen("secventa.in","r");
//FILE *f2 = fopen("secventa.out","w");
std::ifstream f1("secventa.in");
std::ofstream f2("secventa.out");
const int N = 500005;
int n,k,i,prim,ultim,sol,solPrim,solUltim;
int v[N], d[N];
int main()
{
//fscanf(f1,"%d%d",&n,&k);
f1>>n>>k;
sol = v[0] = -30001;
for(i=1;i<=n;i++)
{
//fscanf(f1,"%d",&v[i]);
f1>>v[i];
if(i - d[prim] >= k)
prim++;
while(prim <= ultim && v[i] < v[d[ultim]])
ultim--;
d[++ultim] = i;
if(i >= k && v[d[prim]] > sol)
{
sol = v[d[prim]];
solPrim = i-k+1;
solUltim = i;
}
}
//fprintf(f2,"%d %d %d",solPrim, solUltim, sol);
f2<<solPrim<<' '<<solUltim<<' '<<sol;
return 0;
}