Pagini recente » Cod sursa (job #1567959) | Cod sursa (job #3265355) | Cod sursa (job #2963158) | Cod sursa (job #42277) | Cod sursa (job #1491347)
#include <stdio.h>
using namespace std;
#define MAX 5000000
int dq[MAX+1], top=0, bot=1;
int v[MAX+1];
int main()
{
FILE *fin, *fout;
fin = fopen ("secventa.in","r");
fout = fopen("secventa.out","w");
int n, k, i, x,min=-999999999,mini;
fscanf (fin, "%d%d", &n, &k);
fscanf(fin, "%d", &v[1]);
dq[++top]=1;
for(i=2; i<=n; i++)
{
fscanf(fin, "%d", &v[i]);
if(v[dq[top]]>v[i])
{
while(top >=bot && v[dq[top]]>v[i])
top--;
dq[++top]=i;
}
else
dq[++top]=i;
if(dq[bot] == i-k)
bot++;
if(i >= k)
if(min<v[dq[bot]])
{
min=v[dq[bot]];
mini=i;
}
}
fprintf(fout, "%d %d %d", mini-k+1,mini,min);
return 0;
}