Pagini recente » Cod sursa (job #1593448) | Cod sursa (job #1785614) | Cod sursa (job #2261507) | Cod sursa (job #2362864) | Cod sursa (job #1361851)
#include<stdio.h>
#include<deque>
int main()
{
FILE *fin,*fout;
fin=fopen("secventa.in","r");
fout=fopen("secventa.out","w");
std::deque<int> deq;
std::deque<int> pos;
int n,k,t,m=-30000,s,e;
fscanf(fin,"%d %d",&n,&k);
for(int i=1;i<=k;i++)
{
fscanf(fin,"%d",&t);
while(!deq.empty()&&t<deq.back())
{
deq.pop_back();
pos.pop_back();
}
deq.push_back(t);
pos.push_back(i);
}
m=deq.front();
s=1;
e=k;
for(int i=k+1;i<=n;i++)
{
fscanf(fin,"%d",&t);
if(pos.front()<=i-k)
{
pos.pop_front();
deq.pop_front();
}
if(m<deq.front())
{
m=deq.front();
s=i-k+1;
e=i;
}
while(!deq.empty()&&t<deq.back())
{
deq.pop_back();
pos.pop_back();
}
deq.push_back(t);
pos.push_back(i);
}
if(m<deq.front())
{
m=deq.front();
s=n-k+1;
e=n;
}
fprintf(fout,"%d %d %d",s,e,m);
}