Pagini recente » Cod sursa (job #898448) | Cod sursa (job #3227197) | Cod sursa (job #1370312) | Cod sursa (job #1446603) | Cod sursa (job #2200678)
#include <cstdio>
#include <queue>
using namespace std;
const int NMAX = 500000;
int v[NMAX + 5];
typedef pair<int,int>ii;
deque <ii>q;
int main() {
freopen("secventa.in" , "r" , stdin);
freopen("secventa.out" , "w" , stdout);
int n , i , k , maxim , st , dr;
long long s = 0;
scanf("%d%d" , &n , &k);
for(i = 1 ; i <= n ; i ++)
scanf("%d" , &v[i]);
maxim = 0;
for(i = 1 ; i <= n ; i ++) {
while(!q.empty() && q.back().first >= v[i])
q.pop_back();
q.push_back(ii(v[i] , i));
if(q.front().first > maxim) {
maxim = q.front().first;
st = q.front().second;
dr = q.back().second;
}
if(i >= k) {
while(!q.empty() && i - q.front().second + 1 > k)
q.pop_front();
if(q.front().first > maxim) {
maxim = q.front().first;
st = q.front().second;
dr = q.back().second;
}
}
}
printf("%d %d %d\n" , st , dr , maxim);
return 0;
}