Pagini recente » Cod sursa (job #2683845) | Cod sursa (job #1798566) | Cod sursa (job #950846) | Cod sursa (job #154413) | Cod sursa (job #2439554)
#include <fstream>
#include <deque>
#include <cstring>
#define val first
#define poz second
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,i,k,x,mx=-2000000000,i1,i2,j,v[500002],semn;
deque <pair<int,int> > deq;
char s[4000001];
int main(){
fin>>n>>k;
fin.get();
fin.getline(s,4000000);
semn=1;
for(j=1,i=0;s[i];i++){
if(s[i]=='-')
semn=-1;
else if(isdigit(s[i]))
v[j]=v[j]*10+s[i]-'0';
else v[j]*=semn,j++,semn=1;
}
v[j]*=semn;
for(i=1;i<=n;i++){
x=v[i];
while(deq.size() && x<=deq.back().val)
deq.pop_back();
deq.push_back({x,i});
if(deq.front().poz==i-k)
deq.pop_front();
if(i>=k && deq.front().val>mx){
mx=deq.front().val;
i1=i-k+1;
i2=i;
}
}
fout<<i1<<" "<<i2<<" "<<mx;
return 0;
}