Pagini recente » Cod sursa (job #2000107) | Cod sursa (job #2291738) | Cod sursa (job #2562679) | Cod sursa (job #172276) | Cod sursa (job #2267718)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque<int>deck;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, lmin, val[500005], indexinceput,indexfinal,maxi=-9999999,x,y;
int main() {
f >> n >>lmin;
f >> val[1];
deck.push_back(val[1]);
for (int i=2; i<=n; i++)
{
f >> val[i];
while (!deck.empty() && val[deck.back()]>val[i])
deck.pop_back();
deck.push_back(i);
if (i-deck.front()==lmin)
deck.pop_front();
if (i>lmin && val[deck.front()]>maxi)
{
maxi=val[deck.front()];
indexfinal=i;
indexinceput=indexfinal-lmin+1;
}
}
g << indexinceput <<' ' <<indexfinal <<' ' << maxi;
return 0;
}