Pagini recente » Cod sursa (job #2397379) | Cod sursa (job #1583166) | Cod sursa (job #952678) | Cod sursa (job #2573421) | Cod sursa (job #1481428)
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, k, m, cc, sign, nr;
int a[500010];
int deque[500010];
char c[3000100];
int main(){
fin>>n>>k;
int ct=0;
sign=1;
// citire parsata
fin.get();
fin.get(c , 3000010);
for(int i=0; c[i]!=0; ++i){
if(c[i]=='-') sign=-1;
if(c[i]>='0' && c[i]<='9'){
nr=nr*10+(c[i]-'0');
}
if(c[i]==' '){
a[++ct]=nr*sign;
sign=1;
nr=0;
}
}
a[++ct]=nr*sign;
int back=0;
int front=1;
int mx=-30001;
for(int i=1;i<=n;++i){
while(front<=back && a[i]<=a[deque[back]]) back--;
deque[++back]=i;
if(deque[front]==i-k) ++front;
if(i>=k){
m=a[deque[front]];
if(m>mx){
cc=i-k+1;
mx=m;
}
}
}
fout<<cc<<' '<<cc+k-1<<' '<<mx;
return 0;
}