Pagini recente » Cod sursa (job #2910967) | Cod sursa (job #1073767) | Cod sursa (job #829678) | Cod sursa (job #1190097) | Cod sursa (job #601515)
Cod sursa(job #601515)
#include <fstream>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
const int N=500001;
int n,k,i,dq[N],st=1,dr=0,s,d;
short int v[N];
long long maxx=-1<<15;
void stanga(int i){
if(i-k==dq[st]){
++st;
}
}
void dreapta (int i){
while(st<=dr&&v[dq[dr]]>=v[i]){
--dr;
}
dq[++dr]=i;
}
int main(){
in>>n>>k;
st=1; dr=0;
for(i=1;i<=n;i++){
in>>v[i];
}
for(i=1;i<k;i++){
dreapta (i);
}
for(i=k;i<=n;i++){
stanga(i);
dreapta(i);
if(v[dq[st]]>maxx){
maxx=v[dq[st]];
d=i;
s=i-k+1;
}
}
out<<s<<" "<<d<<" "<<maxx;
return 0;
}