Pagini recente » Cod sursa (job #2320632) | Cod sursa (job #2152507) | Cod sursa (job #2592283) | Cod sursa (job #1423520) | Cod sursa (job #426229)
Cod sursa(job #426229)
#include <stdio.h>
#include <deque>
#include <stdlib.h>
using namespace std;
FILE *fin=fopen("secventa.in","r");
FILE *fout=fopen("secventa.out","w");
struct el
{
int ind,x;
};
deque<el> dq;
int main (int argc, char * const argv[]) {
int n,k;
fscanf(fin, "%d %d",&n,&k);
dq.clear();
int32_t max=0x80000000;
int p=-1;
for (int i=0; i<n; i++)
{
el c;
c.ind=i;
fscanf(fin,"%d",&c.x);
while (!dq.empty()&&(dq.back().ind<=i-k))
dq.pop_back();
while (!dq.empty()&&(dq.front().x>c.x))
dq.pop_front();
dq.push_front(c);
if ((i>=k-1)&&(dq.back().x>max))
{
max=dq.back().x;
p=i-k+1;
}
}
fprintf(fout, "%d %d %d\n",p+1,p+k,max);
fclose(fin);
fclose(fout);
return 0;
}