Pagini recente » Cod sursa (job #3234140) | Cod sursa (job #2263901) | Cod sursa (job #2163155) | Borderou de evaluare (job #2017218) | Cod sursa (job #1670591)
#include <fstream>
using namespace std;
int n,i,v[500001],k,p,j,u,maxim,x,w[500001],k2,d[500001];
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int main (){
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
p = 1;
u = 1;
d[1] = 1;
for (i=2;i<=n;i++){
while (p<=u && v[i] <= v[d[u]])
u--;
d[++u] = i;
if (i-d[p] == k)
p++;
if (i>=k)
w[++k2] = v[d[p]];
}
for (i=1;i<=k2;i++)
if (w[i] > maxim){
maxim = v[i];
p = i;
}
for (i=1;i<=n;i++)
if (v[i] == maxim){
x = i;
while (v[x] > v[i] && x >= 1)
x--;
fout<<x<<" ";
fout<<i+k-(i-x+1)<<" "<<maxim;
break;
}
return 0;
}