Pagini recente » Cod sursa (job #1099472) | Cod sursa (job #146134) | Cod sursa (job #2170998) | Cod sursa (job #362325) | Cod sursa (job #355750)
Cod sursa(job #355750)
#include<fstream>
#define dim 500001
using namespace std;
int N,K,i,minim,in,sf,capat, d[dim], A[dim];
int main()
{
//FILE *f = fopen("secventa.in", "r");
//FILE *g = fopen("secventa.out", "w");
ifstream f("secventa.in");
ofstream g("secventa.out");
//fscanf(f, "%d%d", &N, &K);
f>>N>>K;
in = sf = 1;
minim = capat = -30001;
for(i = 1; i <= N; i++)
{
f>>A[i];//fscanf(f, "%d", &A[i]);
while(in <= sf && A[d[sf]] >= A[i]) sf--;
d[++sf] = i;
if (i - d[in] == K) in++;
if (A[d[in]] > minim && i >= K)
//if(i >= K)
minim = A[d[in]], capat = i;
}
g<<capat-K+1<<" "<<capat<<" "<<minim<<'\n';
//fprintf(g, "%d %d %d\n", capat-K+1, capat, min);
f.close();
g.close();
return 0;
}