Pagini recente » Cod sursa (job #1511385) | Cod sursa (job #74916) | Cod sursa (job #41356) | Cod sursa (job #876176) | Cod sursa (job #1781026)
#include<stdio.h>
#include<deque>
#include<string.h>
using namespace std;
deque<int>d1,d2;
char s[1000001];
int main(){
int n,k,max,nr,i,inc,sf,i2,semn;
char c1,c2,c;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d%c",&n,&k,&c);
gets(s);
n=strlen(s); semn=1;
max=-999999999;
i2=0;
for(i=0;i<=n-1;i++){
nr=0;semn=1;
if(s[i]=='-'){
semn=semn*(-1);
i++;
}
if(s[i]>='0'&&s[i]<='9')
while(s[i]>='0'&&s[i]<='9'){
nr=nr*10+s[i]-'0';
i++;
}
// if(s[i]==' ')
// i++;
nr=nr*semn;
i2++;
while(!d1.empty()&&nr<d1.back()){
d1.pop_back();
d2.pop_back();
}
d1.push_back(nr);
d2.push_back(i2);
if(i2>=k){
while(d2.back()-d2.front()+1>k){
d1.pop_front();
d2.pop_front();
}
if(d1.front()>max){
max=d1.front();
inc=i2-k+1;
sf=i2;
}
}
}
printf("%d %d %d\n",inc,sf,max);
return 0;
}