Pagini recente » Cod sursa (job #3179280) | Cod sursa (job #1006526) | Cod sursa (job #321117) | Cod sursa (job #1514127) | Cod sursa (job #2770499)
//Ilie Dumitru
#include<cstdio>
#include<deque>
int v[500000];
std::deque<int> dq;
int main()
{
int N, K, i, min, start;
FILE *f=fopen("secventa.in", "r"), *g=fopen("secventa.out", "w");
fscanf(f, "%d%d", &N, &K);
for(i=0;i<K;++i)
{
fscanf(f, "%d", v+i);
while(!dq.empty() && v[dq.front()]>=v[i])
dq.pop_front();
dq.push_front(i);
}
min=v[dq.back()];
start=0;
for(;i<N;++i)
{
fscanf(f, "%d", v+i);
while(!dq.empty() && v[dq.front()]>=v[i])
dq.pop_front();
while(!dq.empty() && i-dq.back()>=K)
dq.pop_back();
dq.push_front(i);
if(v[dq.back()]>min)
{
min=v[dq.back()];
start=i-K+1;
}
}
fprintf(g, "%d %d %d", start+1, start+K, min);
fclose(g);
fclose(f);
return 0;
}