Pagini recente » Cod sursa (job #2478096) | Cod sursa (job #3126651) | Cod sursa (job #1319347) | Cod sursa (job #2667481) | Cod sursa (job #2359049)
#include <cstdio>
#include <deque>
using namespace std;
deque <int> d;
int v[500005];
int main(){
FILE *fin=fopen("secventa.in","r");
FILE *fout=fopen("secventa.out","w");
int n,k,i,maxi=-30001,poz;
fscanf (fin,"%d %d",&n,&k);
v[0]=v[n+1]=-30001;
for (i=1;i<=n;i++){
fscanf (fin,"%d",&v[i]);
while (!d.empty() && d.front()<i-k+1)
d.pop_front();
while (!d.empty() && v[d.back()]>v[i])
d.pop_back();
d.push_back(i);
if (i>=k)
if (v[d.front()]>maxi){
maxi=v[d.front()];
poz=d.front();
}
}
i=poz;
while (v[i]>=maxi)
i--;
i++;
fprintf (fout,"%d %d %d",i,i+k-1,maxi);
return 0;
}