Pagini recente » Cod sursa (job #2548045) | Cod sursa (job #1704833) | Cod sursa (job #2968307) | Cod sursa (job #180718) | Cod sursa (job #2206891)
#include <fstream>
using namespace std;
int n, i, p, u, k, d[500003], b, x, nr;
short v[500003], maxim = -30005;
char ok, s[3500001], minusu;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int main(){
fin>>n>>k;
fin.get();
fin.get(s, 3500000);
for(i=0;s[i]!=0;i++){
x = 0, ok = 0, minusu = 1;
if(s[i] == '-')
minusu = -1;
while(s[i] >= '0' && s[i] <= '9'){
x = x*10 + s[i] - '0';
i++;
ok = 1;
}
if(ok == 1)
v[++nr] = minusu*x;
}
//fin>>v[1];
p = u = 1;
d[1] = 1;
for(i=2;i<=n;i++){
//fin>>v[i];
while(p <= u && v[i] < v[d[u]])
u--;
d[++u] = i;
if(i - d[p] == k)
p++;
if(i >= k && v[d[p]] > maxim){
maxim = v[d[p]];
b = i;
}
}
fout<<b-k+1<<" "<<b<<" "<<maxim;
return 0;
}