Pagini recente » Cod sursa (job #1459727) | Cod sursa (job #1865111) | Cod sursa (job #940374) | Cod sursa (job #1992921) | Cod sursa (job #320315)
Cod sursa(job #320315)
#include<iostream>
#include<stdio.h>
#include<deque>
#include<algorithm>
#include<vector>
#define mp make_pair
using namespace std;
int n,k,i,x;
typedef pair <int,int> p;
p Max,MAX;
deque <p> Q;
vector <int> a;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&x);
a.push_back(x);
while(!Q.empty()&&Q.back().first>x)
Q.pop_back();
Q.push_back(mp(x,i));
if(Q.front().second==i-k)
Q.pop_front();
if(i+1>=k)
if(Q.front().first>Max.first)
Max=Q.front();
}
MAX=Max;
for(i=max(0,Max.second-k+1);i<=Max.second;i++)
if(a[i]<MAX.first)
MAX=Max;
else
{
MAX.first=a[i];
MAX.second=i;
}
printf("%d %d %d\n",MAX.second+1,MAX.second+k,Max.first);
return 0;
}