Pagini recente » Cod sursa (job #2581064) | Cod sursa (job #1262201) | Cod sursa (job #2679659) | Cod sursa (job #604819) | Cod sursa (job #1760874)
#include <bits/stdc++.h>
using namespace std;
//ifstream fin("secventa.in");
ofstream fout("secventa.out");
int solution = -100000000, first, last, A[600010], N, K;
deque<int>deq;
char c;
int get_nr()
{
bool semn = false;
int nr = 0;
c = getc(stdin);
if (c == '-')
{
semn = 1;
c = getc(stdin);
}
while (isdigit(c))
{
nr = nr * 10 + c - '0';
c = getc(stdin);
}
if (semn)
{
nr *= -1;
}
return nr;
}
int main()
{
//fin >> N >> K;
freopen("secventa.in", "r", stdin);
N = get_nr();
K = get_nr();
//freopen("secventa.out", "w", stdout);
for(int i = 1; i <= N; i ++)
{
//fin >> A[i];
A[i] = get_nr();
}
for(int i = 1; i <= N; i ++)
{
while( !deq.empty() && A[i] < A[deq.back()])
{
deq.pop_back();
}
deq.push_back(i);
if(i - deq.front() >= K)
{
deq.pop_front();
}
if(i >= K && solution < A[deq.front()])
{
if(i - deq.front() < K - 1)
{
first = i - K + 1;
last = i;
solution = A[deq.front()];
}
else
{
first = deq.front();
last = i;
solution = A[deq.front()];
}
}
}
fout << first << " " << last << " " << solution;
return 0;
}