Pagini recente » Cod sursa (job #1111584) | Cod sursa (job #125294) | Cod sursa (job #2916207) | Cod sursa (job #3181311) | Cod sursa (job #597454)
Cod sursa(job #597454)
#include <fstream>
#include <algorithm>
using namespace std;
int n,k,i,a[500001];
int minime[500001];
int cap=1,coada=0;
int minim=-30000,poz;
int main()
{
ifstream f("secventa.in");
ofstream g("secventa.out");
f >> n >> k;
for (i=1; i<=n; i++)
f >> a[i];
for (i=1; i<=n; i++)
{
while ((cap<=coada)&&(a[i]<=a[minime[coada]])) coada--;
minime[++coada]=i;
if (i>=k)
if (minim<a[minime[cap]])
{
minim=a[minime[cap]];
//poz=minime[cap];
poz=i;
}
if (minime[cap]==i-k+1) cap++;
}
//int l=poz;
//while ((a[l-1]>=minim)&&(l>1)) l--;
//g << l << ' ' << max(l+k-1,poz) << ' ' << minim;
g << poz-k+1 << ' ' << poz << ' ' << minim;
return 0;
}