Pagini recente » Rating Radu Caprarin (radumihai10) | Cod sursa (job #304380) | Cod sursa (job #2169792) | Cod sursa (job #1033464) | Cod sursa (job #2743456)
//Ilie Dumitru
#include<cstdio>
#include<deque>
struct element
{
int index, val;
};
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int N, K, i, x, maxim, poz;
std::deque<element> dq;
element e;
scanf("%d%d", &N, &K);
for(i=0;i<K;++i)
{
scanf("%d", &x);
while(!dq.empty() && dq.front().val>x) dq.pop_front();
e.index=i;
e.val=x;
dq.push_front(e);
}
maxim=dq.back().val;
poz=K-1;
for(;i<N;++i)
{
scanf("%d", &x);
while(!dq.empty() && dq.front().val>x) dq.pop_front();
while(!dq.empty() && dq.back().index+K<=i) dq.pop_back();
e.index=i;
e.val=x;
dq.push_front(e);
if(dq.back().val>maxim)
maxim=dq.back().val, poz=i;
}
fclose(stdin);
printf("%d %d %d", maxim, poz-K+2, poz+1);
fclose(stdout);
return 0;
}