Pagini recente » Cod sursa (job #2986672) | Cod sursa (job #750371) | Cod sursa (job #2697321) | Cod sursa (job #1745692) | Cod sursa (job #2472332)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque<int>deck;
int n,k, sir[500005], maxi, ind_start, ind_end;
int main() {
ios_base::sync_with_stdio(false);
f >> n >> k;
f >>sir[1];
int el;
deck.push_back(1);
for (int i=2; i<=k; ++i)
{
f >> sir[i];
while (!deck.empty() && sir[deck.back()]>sir[i])
deck.pop_back();
deck.push_back(i);
}
maxi=sir[deck.front()];
ind_start=1;
ind_end=k;
for (int i=k+1; i<=n; ++i)
{
f >> sir[i];
if (i-deck.front()>=k)
deck.pop_front();
while (!deck.empty() && sir[deck.back()]>sir[i])
deck.pop_back();
deck.push_back(i);
if (sir[deck.front()]>maxi)
{
maxi=sir[deck.front()];
ind_start=i-k+1;
ind_end=i;
}
}
g << ind_start <<' '<< ind_end <<' '<<maxi;
return 0;
}