Pagini recente » Cod sursa (job #3122396) | Cod sursa (job #1229207) | Cod sursa (job #102018) | Cod sursa (job #1007654) | Cod sursa (job #1803743)
#include <iostream>
#include <cstdio>
#include <deque>
#define MAX 500005
#define cout cerr
using namespace std;
int n,k,val,sf,a[MAX];
char b[MAX*10];
deque <int> q;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d\n",&n,&k);
a[0]=-30005;
val=0;
gets(b);
int y,z;
y=0;
for(int i=1; i<=n; i++)
{
if(b[y]=='-')
z=-1,y++;
else z=1;
a[i]=0;
while(b[y]>='0' && b[y]<='9')
a[i]=a[i]*10+b[y]-'0',y++;
a[i]*=z;
y++;
while(!q.empty() && a[q.back()]>=a[i])
q.pop_back();
if(!q.empty() && q.front()+k<=i)
q.pop_front();
q.push_back(i);
if(i>=k)
if(a[q.front()]>a[val])
val=q.front(),sf=i;
}
printf("%d %d %d",sf-k+1,sf,a[val]);
return 0;
}