Pagini recente » Cod sursa (job #1150614) | Cod sursa (job #693239) | Cod sursa (job #2334567) | Cod sursa (job #2846930) | Cod sursa (job #1601549)
#include<cstdio>
#include<deque>
#include<cstring>
using namespace std;
char s[3000100];
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int n, k, i, elem, mst, mdt, maxim=-50000, x, parc;
deque< pair< int, int > > dq;
scanf("%d%d", &n, &k);
gets(s);
gets(s);
parc=0;
for(i=1; i<k; i++){
parc+=2*sscanf(s+parc, "%d", &elem);
while(!dq.empty() && dq.back().first>=elem)
dq.pop_back();
dq.push_back(make_pair(elem, i));
}
for(i=k; i<=n; i++){
parc+=2*sscanf(s+parc, "%d", &elem);
while(!dq.empty() && dq.back().first>=elem)
dq.pop_back();
dq.push_back(make_pair(elem, i));
x=dq.front().second;
if(dq.front().second+k<=i)
dq.pop_front();
if(dq.front().first>maxim){
maxim=dq.front().first;
mst=i-k+1;
mdt=i;
}
}
printf("%d %d %d", mst, mdt, maxim);
return 0;
}