Pagini recente » Cod sursa (job #2294381) | Cod sursa (job #1383815) | Cod sursa (job #2551418) | Cod sursa (job #1368271) | Cod sursa (job #1803722)
#include <iostream>
#include <cstdio>
#include <deque>
#define nmx 500005
#include <limits.h>
using namespace std;
FILE *f=fopen("secventa.in","r");
FILE *f1=fopen("secventa.out","w");
int v[nmx],n,k,x;
long long s=0;
deque <int> q;
int maxi=INT_MIN;
void citire( )
{
fscanf(f,"%d%d",&n,&k);
for(int i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
}
void baza( )
{
int b;
b=q.front();
if(v[b]>maxi)
{
maxi=v[b];
x=b;
}
}
void add(int i)
{
while(!q.empty()&&v[q.back()]>v[i])
q.pop_back();
q.push_back(i);
}
void init()
{
for(int i=1;i<=k;i++)
add(i);
baza();
}
void eraser(int i)
{
while(!q.empty()&&(i-q.front()+1>k))
q.pop_front();
}
void rezolvare( )
{
init( );
for(int i=k+1;i<=n;i++)
{
add(i);
eraser(i);
baza();
}
}
int main()
{
citire( );
rezolvare();
fprintf(f1,"%d %d %d",x,x+k-1,maxi);
return 0;
}