Pagini recente » Cod sursa (job #2642878) | Cod sursa (job #170522) | Cod sursa (job #523474) | Cod sursa (job #582295) | Cod sursa (job #3211199)
#include<fstream>
#include<deque>
std::ifstream fin("secventa.in");
std::ofstream fout("secventa.out");
std::deque<std::pair<int, int>>q;
void update(int elem, int pos)
{
while(!q.empty() && elem<q.back().second)
q.pop_back();
q.push_back(std::make_pair(pos, elem));
}
int main()
{
int dr, max;
int n, k;
fin>>n>>k;
int val;
for(int index=0; index<k; ++index)
{
fin>>val;
update(val, index);
}
max=q.front().second;
dr=k-1;
for(int index=k; index<n; ++index)
{
if(index-q.front().first==k)
q.pop_front();
fin>>val;
update(val, index);
if(q.front().second>max)
{
max=q.front().second;
dr=index;
}
}
fout<<dr-k+2<<' '<<dr+1<<' '<<max;
return 0;
}