Pagini recente » Cod sursa (job #2226172) | Cod sursa (job #2924475) | Cod sursa (job #895338) | Cod sursa (job #2977169) | Cod sursa (job #1504812)
#include <fstream>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int minim(int a[],int s,int d)
{
int i,min1;
min1=a[s];
for(i=s+1;i<=d;i++)
if(a[i]<min1) min1=a[i];
return min1;
}
int main()
{
int n,k,a[500001],i,s,d,min1,min2,p1,p2,front,back,deque[500001];
in>>n;
in>>k;
for(i=1;i<=n;i++) in>>a[i];
s=d=1;
min1=-30001;
front=1;
back=0;
for(i=1;i<=n;i++)
{
if(i-deque[front]+1>k) front++;
while(front<=back && a[i]<a[deque[back]]) back--;
back++;
deque[back]=i;
min2=a[deque[front]];
if(d-s+1!=k) d++;
else{
if(min2>min1)
{
p1=s;
p2=d;
min1=min2;
s++;
d++;
}else{
s++;
d++;
}
}
}
out<<p1<<" "<<p2<<" "<<min1;
in.close();
out.close();
return 0;
}