Pagini recente » Cod sursa (job #1528459) | Cod sursa (job #1475502) | Cod sursa (job #1691719) | Cod sursa (job #2446436) | Cod sursa (job #1576538)
#include <stdio.h>
#include <stdlib.h>
#include <deque>
using namespace std;
deque<int> d;
deque<int> p;
int main()
{
FILE *fin, *fout;
int n,k,x,maxim,poz,i;
fin=fopen("secventa.in","r");
fout=fopen("secventa.out","w");
fscanf(fin,"%d%d",&n,&k);
fscanf(fin,"%d",&x);
d.push_back(x);
p.push_back(0);
for(i=1;i<k;i++){
fscanf(fin,"%d",&x);
while(d.empty()==0 && d.back()>x){
d.pop_back();
p.pop_back();
}
d.push_back(x);
p.push_back(i);
}
maxim=d.front();
for(i;i<n;i++){
if(p.front()==i-k){
d.pop_front();
p.pop_front();
}
fscanf(fin,"%d",&x);
while(d.empty()==0 && d.back()>x){
d.pop_back();
p.pop_back();
}
d.push_back(x);
p.push_back(i);
if(maxim<d.front()){
maxim=d.front();
poz=i;
}
}
fprintf(fout,"%d %d %d",poz-k+2,poz+1,maxim);
fclose(fin);
fclose(fout);
return 0;
}