Pagini recente » Cod sursa (job #3327309) | Cod sursa (job #3352199) | Cod sursa (job #2963987) | Cod sursa (job #338773) | Cod sursa (job #3343294)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
struct Elem
{
int poz, val;
Elem(int poz, int val)
{
this->poz = poz;
this->val = val;
}
};
int main()
{
int N, K;
deque<Elem> dq;
//
f >> N >> K;
for(int i = 1; i <= K; i++)
{
int x;
f >> x;
while(!dq.empty() && dq.back().val >= x)
dq.pop_back();
dq.push_back(Elem(i, x));
}
int st = 1, dr = K, bMax = dq.front().val;
for(int i = K + 1; i <= N; i++)
{
int x;
f >> x;
if(!dq.empty() && dq.front().poz == i - K)
dq.pop_front();
while(!dq.empty() && dq.back().val >= x)
dq.pop_back();
dq.push_back(Elem(i, x));
if(dq.front().val > bMax)
{
st = i - K + 1;
dr = i;
bMax = dq.front().val;
}
}
g << st << ' ' << dr << ' ' << bMax << '\n';
f.close();
g.close();
return 0;
}