Pagini recente » Cod sursa (job #1662719) | Cod sursa (job #3316722) | Cod sursa (job #3315095) | Cod sursa (job #3311259) | Cod sursa (job #3321157)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
#include <limits.h>
using namespace std;
int main() {
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k;
f >> n >> k;
vector<int> a(n);
for(int i=0;i<n;i++) f >> a[i];
deque<int> dq;
int best = INT_MIN;
int start, fin;
for(int i=0;i<n;i++) {
while(!dq.empty() && a[dq.back()] >= a[i])
dq.pop_back();
dq.push_back(i);
if(dq.front() <= i - k)
dq.pop_front();
if(i >= k-1) {
if(a[dq.front()] > best) {
best = a[dq.front()];
start = i - k + 1;
fin = i;
// Extindem secventa cat timp elementele urmatoare >= best
int j = i + 1;
while(j < n && a[j] >= best) {
fin = j;
j++;
}
}
}
}
g << start + 1 << " " << fin + 1 << " " << best;
}