Pagini recente » Cod sursa (job #1717422) | Statistici Matraguna Mihai-Alexandru (hopingsteam) | Cod sursa (job #912894) | Cod sursa (job #1712203) | Cod sursa (job #1378918)
#include <deque>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 500005;
deque<int> dq;
int v[MAXN], poz;
string s;
inline int get_int() {
int sgn = 0, ans = 0;
if(s[poz] == '-')
sgn = 1, ++poz;
while(s[poz] >= '0' && s[poz] <= '9') {
ans = ans * 10 + s[poz] - '0';
++poz;
}
++poz;
if(sgn)
return -ans;
return ans;
}
int main()
{
ifstream cin("secventa.in");
ofstream cout("secventa.out");
int N, K, maxb = -40000, st = 0, dr = 0;
cin >> N >> K;
getline(cin, s);
getline(cin, s);
for(int i = 1; i <= N; ++i) {
v[i] = get_int();
while(!dq.empty() && v[dq.back()] > v[i])
dq.pop_back();
if(!dq.empty() && i - dq.front() + 1 > K)
dq.pop_front();
dq.push_back(i);
if(i >= K && v[dq.front()] > maxb) {
maxb = v[dq.front()];
dr = i;
st = i - K + 1;
}
}
cout << st << " " << dr << " " << maxb;
return 0;
}