Pagini recente » Cod sursa (job #3175470) | Cod sursa (job #1435029) | Cod sursa (job #657177) | Cod sursa (job #1398157) | Cod sursa (job #1781935)
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
deque <int> deque1,deque2;
int main()
{
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int n,k,nr,i,x,st,dr,maxx=-30001;
fin>>n>>k;
for(i=1; i<=k; i++)
{
fin>>x;
if(!deque1.empty())
{
while(!deque1.empty()&&deque1.back()>=x)
{
deque1.pop_back();
deque2.pop_back();
}
}
deque1.push_back(x);
deque2.push_back(i);
}
if(deque1.front()>maxx)
{
maxx=deque1.front();
st=1;
dr=k;
}
for(i=k+1; i<=n; i++)
{
fin>>x;
if(!deque1.empty())
{
while(!deque1.empty()&&deque1.back()>=x)
{
deque1.pop_back();
deque2.pop_back();
}
}
deque1.push_back(x);
deque2.push_back(i);
if(deque2.front()<i-k+1)
{
deque2.pop_front();
deque1.pop_front();
}
if(deque1.front()>maxx)
{
maxx=deque1.front();
st=deque2.front();
dr=i;
}
}
fout<<st<<" "<<dr<<" "<<maxx;;
return 0;
}