Pagini recente » Cod sursa (job #2694129) | Cod sursa (job #1043951) | Cod sursa (job #2776754) | Cod sursa (job #3285192) | Cod sursa (job #3241009)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
struct elem
{
short v;
int p;
};
int n, k, psol, i;
short x, sol = -32001;
deque<elem> d;
int main()
{
fin >> n >> k;
for(i = 1; i <= k; ++i)
{
fin >> x;
while(!d.empty() && x < d.back().v)
d.pop_back();
d.push_back({x, i});
}
sol = d.front().v, psol = k;
for(i = k + 1; i <= n; ++i)
{
fin >> x;
while(!d.empty() && x < d.back().v)
d.pop_back();
if(!d.empty() && d.front().p + k == i)
d.pop_front();
d.push_back({x, i});
if(d.front().v > sol)
{
sol = d.front().v;
psol = i;
}
}
fout << psol - k + 1 << ' ' << psol << ' ' << sol;
return 0;
}