Pagini recente » Cod sursa (job #2591847) | Cod sursa (job #517306) | Cod sursa (job #663719) | Cod sursa (job #1738081) | Cod sursa (job #2358533)
#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 (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;
}