Pagini recente » Cod sursa (job #1581804) | Cod sursa (job #779734) | Cod sursa (job #2889904) | Cod sursa (job #1951003) | Cod sursa (job #1555204)
#include <cstdio>
#include <deque>
using namespace std;
FILE *fin=freopen("secventa.in","r",stdin);
FILE *fout=freopen("secventa.out","w",stdout);
int n, k, st, f, val = -30003, point;
int A[500003];
deque <int> D;
char s[4000003];
void Read_New(int pos)
{
int aux = 0, semn;
if( s[point] == '-' )
{
semn = -1;
++point;
}
else
semn = 1;
while( 48 <= s[point] && s[point] <= 57 )
{
aux = aux * 10 + s[point] - 48;
++point;
}
++point;
A[pos] = aux * semn;
}
int main()
{
scanf("%d%d", &n, &k);
getchar();
gets(s);
for(int i = 1 ; i <= n ; ++i )
{
Read_New(i);
while( !D.empty() && A[D[D.size() - 1]] > A[i] )
D.pop_back();
D.push_back(i);
while( i - D[0] >= k )
D.pop_front();
if(i >= k)
if( A[D[0]] > val )
{
val = A[D[0]];
f = i;
st = i - k + 1;
}
}
printf("%d %d %d", st, f, val);
return 0;
}