Pagini recente » Cod sursa (job #472689) | Cod sursa (job #1670184) | Cod sursa (job #2600397) | Cod sursa (job #161472) | Cod sursa (job #2266567)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
struct el{
int indice, nr;
};
int n, k;
deque <el> deq;
int main() {
in >> n >> k;
el x;
in >> x.nr;
x.indice = 1;
deq.push_back(x);
for(int i = 2; i < k; i++){
in >> x.nr;
x.indice = i;
while(!deq.empty() && x.nr < deq.back().nr)
deq.pop_back();
deq.push_back(x);
}
el maxi = deq.front();
/* deq.pop_front();*/
for(int i = k ; i <= n; i++){
in >> x.nr;
x.indice = i;
while(!deq.empty() && x.nr < deq.back().nr){
deq.pop_back();
}
deq.push_back(x);
if(deq.front().nr > maxi.nr){
maxi = deq.front();
}
if(deq.back().indice - deq.front().indice == k - 1)
deq.pop_front();
}
out << maxi.indice - k + 1 << " " << maxi.indice << " " << maxi.nr;
return 0;
}